2010-07-31 150 views
0

我们发现一个问题,同时访问我们的ASP.Net MVC项目在IIS 7中托管的Web服务(Windows 2008的),我们使用这个bindings.configWCF客户端和Windows集成身份验证

<basicHttpBinding> 
     <binding name="BasicServiceHttpBinding"> 
      <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Windows"/> 
      </security> 
     </binding> 
</basicHttpBinding> 

虽然我们从VS2008测试整个应用程序,一切正常,但是当我们使用安装程序安装整个项目并将其托管在IIS下时,我们的项目无法访问Web服务。

我猜不同的是谁拥有这个过程,在VS2008下运行应用程序时,ower是当前登录用户(域帐户),但在IIS下托管应用程序时,用户是不同的(可能是./管理员或IIS_USER而不是我的域帐户)。

在运行一个控制台应用程序作为服务时,我们遇到了类似的问题,我们通过将服务所有者更改为域帐户而不是本地系统帐户来修复它。

我想知道我们可以做一些类似于IIS中的项目吗?我的意思是改变流程所有者?

以及在这种情况下访问服务器API的最佳方式是什么?

回答

1

是的这是最有可能的帐户权限问题。如果您在一台服务器上安装ASP.NET应用程序并在另一台服务器上安装Web服务,并且您不更改ASP.NET应用程序的默认AppPool标识,则通常会发生这种情况

如果您需要更改用于运行ASP.NET MVC应用程序的帐户,则必须打开IIS管理控制台并查找哪个AppPool正在运行您的应用程序。比您可以更改该AppPool的帐户。请注意,更多应用程序可以共享一个AppPool,以便在更改帐户时影响其行为。如果发生这种情况,您可以创建新的应用程序池并将其分配给您的应用程序。

最好的问候,拉吉斯拉夫·

+0

这正是我们所做的,非常感谢你的答案。 – user192048 2010-08-11 00:40:06