我们在IIS 7(Windows 2008)中托管的ASP.Net MVC项目中访问Web服务时发现问题,我们正在使用此bindings.config
<basicHttpBinding>
<binding name="BasicServiceHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</basicHttpBinding>
当我们从VS2008测试整个应用程序时,一切正常,但是当我们使用安装程序安装整个项目并将其托管在IIS下时,我们的项目无法访问Web服务。
我想不同的是谁拥有这个过程,在VS2008下运行应用程序时,theower是当前的登录用户(域帐户),但是在IIS下托管应用程序时,用户是不同的(可能是./Administrator或IIS_USER而不是我的域帐户。)
我们在将一个控制台应用程序作为服务运行之前遇到过类似的问题,我们只需将服务所有者更改为域帐户而不是本地系统帐户来修复它。
我想知道我们可以在IIS中执行类似于项目的操作吗?我的意思是改变流程所有者?
在这种情况下访问服务器API的最佳方法是什么?
答案 0 :(得分:1)
是的,这很可能是帐户权限问题。如果您在一台服务器上安装ASP.NET应用程序而在另一台服务器上安装Web服务,并且您没有更改ASP.NET应用程序的默认AppPool标识,则通常会发生这种情况。
如果您需要更改用于运行ASP.NET MVC应用程序的帐户,则必须打开IIS管理控制台并查找正在运行您的应用程序的AppPool。您可以更改该AppPool的帐户。请注意,更多应用程序可以共享单个AppPool,因此您可以在更改帐户时影响其行为。如果发生这种情况,您可以创建新的应用程序池并将其分配给您的应用程序。
祝你好运, 拉吉斯拉夫