我在ASP.net网站的UI中有一段Angularjs代码。在这个Angular代码中,我调用ASMX Web服务来获取一些数据。当我从Visual Studio 2013(使用IIS Express服务器)运行应用程序时,这可以找到。但是当我在代码尝试访问服务时部署到IIS服务器(在我的开发机器或Server 2008生产系统上)时,它会抛出500.0错误。
Angular调用是:
getItemsUser: function (UserTypeID) {
var params = { "UserTypeID": UserTypeID };
return $http({
url: "MainServices.asmx/GetItemsForUser"
method: "POST",
headers: { 'Content-Type': 'application/json; charset=utf-8' },
data: JSON.stringify( params ),
dataType: 'json'
})
这将返回一个Promise,它立即出现500.0错误。
ASMX代码隐藏中的功能代码是
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class MainDisplayServices
<System.Web.Services.WebMethod(Description:="GetItems", EnableSession:=False)>
Public Function GetItemsForUser(UserTypeID As Integer) As List(Of Item_Row)
Return Controller.GetItemsForUser(UserTypeID)
End Function
在IIS日志中,返回的条目是:
2015-01-26 03:50:26 ::1 POST /site/MainServices.asmx/GetItemsForUser - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko http://localhost/site/Main.aspx 500 0 0 250
有关如何解决此问题的任何想法?
FWIW,我尝试添加属性以将POST更改为GET,并且无论动词如何,行为都没有变化。
杰里