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

Asp.net 从angualrjs调用asmx web服务仅在IIS上抛出500,而不是VS2013(IIS Express),asp.net,angularjs,asmx,Asp.net,Angularjs,Asmx,我在ASP.net网站的UI中有一段Angularjs代码。在这段代码中,我调用ASMXWeb服务来获取一些数据。当我从使用IIS Express服务器的Visual Studio 2013运行应用程序时,会发现这一点。但是,当我在开发机器或Server2008生产系统上部署到IIS服务器时,当代码试图访问该服务时,会抛出500.0错误 角度调用是: getItemsUser: function (UserTypeID) { var params = {

我在ASP.net网站的UI中有一段Angularjs代码。在这段代码中,我调用ASMXWeb服务来获取一些数据。当我从使用IIS Express服务器的Visual Studio 2013运行应用程序时,会发现这一点。但是,当我在开发机器或Server2008生产系统上部署到IIS服务器时,当代码试图访问该服务时,会抛出500.0错误

角度调用是:

        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'
            })
这将返回一个承诺,该承诺立即与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
关于如何解决这个问题有什么想法吗

FWIW,我已经尝试添加属性来更改POST to GET,并且无论动词是什么,行为都没有改变


杰瑞

有什么例外?是否可以检查事件查看器?是否可以向web服务代码添加断点并单步执行?发现错误。问题是EnableSession:=False。控制器包含在应用程序级容器中。由于应用程序是会话创建的特例,因此必须启用会话创建。因此,设置EnableSession:=True修复了该问题。显然,IIS Express必须忽略此设置或以不同方式处理会话。
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