我在C#. net中创建了一个restful API应用程序。当我通过iisexpress在调试或发布模式下编译我的应用程序时。它按预期工作。我可以使用fiddler并在“GET”中传递相应的参数,如用户凭据,它将连接并获得200的响应(http://localhost:49917/v2/Carriers).当我发布应用程序并将其部署到IIS中时,(http://api.test1.net/v2/Carriers). IIS是安装在我编译应用程序的同一台计算机上。然后,我使用fiddler并传递必要的参数,我得到了503的响应。我不知道为什么不工作。我的应用程序池是以下设置:. NET版本:v4.0托管管道模式:集成身份:LocalService(我也尝试过ApplicationPoolIdentity)
当我发布我的应用程序时,我使用以下发布方法:“文件系统”。
我已经在主机文件中添加了IP地址和主机名(windows/system32/drivers/etc/)。我不知道为什么不工作。
是什么让visual studio在调试/发布模式下与发布版本不同?
2条答案
按热度按时间wnrlj8wa1#
我想让你们知道我做了你们推荐的事情,我找到了答案。我需要在SQL Server数据库中添加一个新用户。
“在IIS APPPOOL\ASP.NET v4.0下删除数据库由于我们正在使用ASP.NET v4.0应用程序池,请确保IIS APPPOOL\ASP.NET v4.0已添加到数据库服务器->安全->登录。”
在我添加了这个新用户“IIS APPPOOL\api.test1.net“之后,API get请求与fiddler一样工作,并得到200响应。“api.test1.net”是我在IIS中的应用程序池的名称。
感谢您发送编修。
vof42yt12#
我遇到了同样的问题,并找到了一篇关于IIS 7.5或更高版本引起的确切问题的Microsoft文章,并且SQL Server的用户示例已打开。
要将此日志修复到IIS服务器中,并转到无法工作的API的应用程序池设置,例如DefaultAppPool V4.0 -在高级设置下,找到“进程模型-设置加载用户配置文件= true”部分。
Microsoft帮助页面:Application Pool Identities and SQL Server Express
还需要更新web.config以添加,如下所示