Web Api不能调用存储过程

stevenjin 2017-08-22 03:06:38
IIS发布后,创建HTML页面调用:
1.可以成功调用到使用sql语句查询的方法。
2.在调用使用存储过程返回数据的方法时,总是不返回值。
也就是不去执行或执行失败,没取到值。
3.直接以URL方式调用以上两种均可行。
如直接在地址栏写:
http://151.13.234.231/api/WMSApi?SNFiXAsset=11111111111g


Web Api是与MVC混合在一个网站下编译和发布。
但控件器名称不一样,当然各自继承的类也不一样。

为什么一旦是存储过程就不行了呢,如果是数据库问题,那我通过URL也能执行呀?

HTML访问页面代码(我已做跨域设置):
script>
$(function () {
$.ajax({
type: "get",
url: "http://151.13.234.231/api/WMSApi",
data: {"SNFiXAsset":"11111111111g"},
success: function (data) {
alert(data);
}
});
}
)
</script>

...全文
424 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenjin 2017-08-22
  • 打赏
  • 举报
回复
谢谢指点,通过sqlprofile看到了存储过程的语句中有些问题
stevenjin 2017-08-22
  • 打赏
  • 举报
回复
我试着在代码里面写SQL语句进行返回数据,都是没有问题的。 一旦调用存储过程,就取不到值了。 而直接访问API路径,又能调用 这个存储过程返回的数据。 也就是只有用页面去调用"带有存储过程"的API会取不到值。
stevenjin 2017-08-22
  • 打赏
  • 举报
回复
是访问的同一数据库呢。以下是响应情况。
一个正常返回111,直接访问API;一个返回0,这个是用页面调用的。
正怒月神 2017-08-22
  • 打赏
  • 举报
回复
服务器和你本地访问的是同一个数据库吗? 是不是数据导致的? 你完全可以自己跑到服务器,打开sqlprofile,然后浏览器访问以下webapi,找到sql语句执行看看啊
stevenjin 2017-08-22
  • 打赏
  • 举报
回复
本地没问题呢,主要是发布后。我从调试器始看到终得到返回值0(执行了else). 也就是说没有执行存储过程里的方法或执行失败了。 本地的话没问题,现在就是在IIS发布后这样,也没法单步。
xdashewan 2017-08-22
  • 打赏
  • 举报
回复
要学会调试你的代码

12,163

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧