如何调试:WCF服务调用在VS中有效,但在IIS中无效

时间:2011-01-23 08:56:46

标签: visual-studio wcf debugging iis

我正在尝试使用ASP.Net AuthenticationService来验证Silverlight应用程序中的用户。我有一个Web应用程序,其服务指向“System.Web.ApplicationServices.AuthenticationService”。我的web.config定义了服务,端点,绑定,行为等。对于成员资格数据库,我使用SQL Express和MDF文件。

我相当确定所有这些设置都正确,因为如果我在Visual Studio中运行它,一切正常。我的Silverlight应用程序调用AuthenticationService,传入用户名和密码,然后返回响应。

但是,当我部署到IIS时,调用AuthenticationService始终响应异常:“远程服务器返回错误:Not Found”

我怀疑这与SQL Express有关,但无法确定问题所在。我试过在System帐户下运行SQL Express。我尝试向网络服务帐户授予我的App_Data文件夹的完全权限。我尝试了很多不同的连接字符串。

在任何情况下,任何人都可以提供有关如何使用带有SQL Express和IIS的AuthenticationService部署Silverlight应用程序的任何提示或参考吗?

更新:我安装了SQL Server 2008的试用版并获得了相同的结果。在使用Visual Studio运行时,我可以使一切正常工作,但不能在IIS中运行。如果有人有关于如何在IIS中使用Silverlight的AuthenticationService的参考或教程,我将不胜感激。

更新2:问题在于我在SQL Server中的身份验证设置。我能够通过启用跟踪来跟踪这一情况,如评论中所建议的那样。我已经更新了有关如何调试此类问题的问题,其中您的服务调用在Visual Studio中工作但在IIS中不工作。

1 个答案:

答案 0 :(得分:3)

例如,我已将此代码添加到配置中:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Critical,Error" >
    <listeners>
      <add name="xml" />
    </listeners>
  </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="Critical,Error">
      <listeners>
        <add name="xml" />
      </listeners>
    </source>
</sources>
<sharedListeners>
  <add initializeData="D:\WcfLog.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" />
</sharedListeners>
<trace autoflush="true" />

Microsoft Service Trace Viewer可以打开扩展名为“* .svclog”的文件。 Trace Viewer 现在异常更加明显。