从angularjs调用asmx web服务仅在IIS上抛出500,而不是VS2013(IIS Express)

时间:2015-01-26 04:11:38

标签: asp.net angularjs asmx

我在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,并且无论动词如何,行为都没有变化。

杰里

0 个答案:

没有答案