将ADO.Net数据服务应用程序推出到IIS时出现问题

将ADO.Net数据服务应用程序推出到IIS时出现问题,.net,web-services,iis,wcf-data-services,.net,Web Services,Iis,Wcf Data Services,我正在向现有网页添加ADO.Net数据服务查找功能。从visual studio运行时,一切都很好,但当我将其推出到IIS时,会出现以下错误: 请求错误服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志 即使在尝试显示默认页面时,也会出现这种情况,即: 我在服务器上安装了3.5 SP1 我遗漏了什么,它指的是哪些“服务器日志”?我找不到任何进一步的错误消息 事件查看器日志(系统或应用程序)中没有任何内容,IIS日志中除了GET: 2008-09-10 15:20:19 10.7.131

我正在向现有网页添加ADO.Net数据服务查找功能。从visual studio运行时,一切都很好,但当我将其推出到IIS时,会出现以下错误:

请求错误
服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志

即使在尝试显示默认页面时,也会出现这种情况,即:

我在服务器上安装了3.5 SP1

我遗漏了什么,它指的是哪些“服务器日志”?我找不到任何进一步的错误消息

事件查看器日志(系统或应用程序)中没有任何内容,IIS日志中除了GET:

2008-09-10 15:20:19 10.7.131.71 GET/FFLookup.svc-8082-10.7.131.86 Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+en-US)+AppleWebKit/525.13+(KHTML,+like+Gecko)+Chrome/0.2.149.29+Safari/525.13 4012 2148074254

没有返回堆栈跟踪。我得到的唯一响应是上面提到的“请求错误”

谢谢

Patrick

我找到了上面错误中提到的“服务器日志”

您需要通过添加以下标记在web.config文件中打开跟踪:

    <system.diagnostics>
      <sources>
        <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
            <listeners>
                <add name="ServiceModelTraceListener"/>
            </listeners>
        </source>

        <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"        >
            <listeners>
                <add name="ServiceModelTraceListener"/>
            </listeners>
        </source>
        <source name="System.Runtime.Serialization" switchValue="Verbose,ActivityTracing">
            <listeners>
                <add name="ServiceModelTraceListener"/>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add initializeData="App_tracelog.svclog"   
                        type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                        name="ServiceModelTraceListener" traceOutputOptions="Timestamp"/>
    </sharedListeners>
</system.diagnostics>

这将在您的网站目录中创建一个名为app_tracelog.svclog的文件

然后使用SvcTraceViewer.exe实用程序查看此文件。查看器很好地突出显示了错误(以及有关通信的许多其他信息)

注意:使用上述参数创建的日志文件增长非常快。只在调试期间打开它


在本例中,问题最终是Oracle数据提供商OraDirect.Net的版本不正确。我们使用的版本不支持3.5 SP1。

为了详细显示数据服务导致的错误,您可以在数据服务定义上方放置以下标记:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]  
这将在浏览器窗口中显示错误以及堆栈跟踪

除此之外,dataservices还会向HandleException方法抛出所有异常,因此如果在dataservice类上实现此方法,则可以在其上设置断点并查看异常:

protected override void HandleException(HandleExceptionArgs e)
{
  try
  {
    e.UseVerboseErrors = true;
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.Message);
  }
}

对我来说,这个错误是由两个同名的方法(意外重载)引起的

不支持重载,但类型“abc”具有重载方法“Void SubmitCart(System.String,Int32)”


我通过在调试模式下运行服务发现了这一点。

能否运行IIS管理器(运行>inetmgr)并右键单击服务文件。单击浏览。如果尝试使用localhost,可能会获得更多错误详细信息。还要注意浏览器中的url。可能网站配置了不同的端口。它是否有助于解决您的问题。如果你能分享你的发现,那就太好了。