C# WCF服务-在本地工作,但返回异常;“坏数据”;出版时
我正在部署一个基本的WCF服务,它对数据库执行查询,并返回VSTO excel加载项要使用的数据 当测试在本地运行服务时,一切都正常,但是一旦addin指向发布的服务,我就会得到500个错误“坏数据”(这就是返回soap数据包中包含的全部内容) 发布端的代码与本地代码相同,我可以通过本地浏览器查看服务。发布端是本地网络上运行IIS7.0的另一台机器 客户端配置:C# WCF服务-在本地工作,但返回异常;“坏数据”;出版时,c#,wcf,vsto,C#,Wcf,Vsto,我正在部署一个基本的WCF服务,它对数据库执行查询,并返回VSTO excel加载项要使用的数据 当测试在本地运行服务时,一切都正常,但是一旦addin指向发布的服务,我就会得到500个错误“坏数据”(这就是返回soap数据包中包含的全部内容) 发布端的代码与本地代码相同,我可以通过本地浏览器查看服务。发布端是本地网络上运行IIS7.0的另一台机器 客户端配置: <binding name="zzzServiceBinding" closeTimeout="00:01:00"
<binding name="zzzServiceBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="10485760" maxBufferPoolSize="524288" maxReceivedMessageSize="10485760"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
图书馆-
public static DataTable GetBranchList(DateTime ReportDate)
{
DbInstance db = GetDBConnection();
try
{
string SQLText = "zzzschema.usp_zzzGetBranchList";
return db.QueryReturningDataTable(SQLText, CommandType.StoredProcedure, db.CreateParameter("@ReportDate", ReportDate));
}
finally
{
db.Close();
}
}
我知道库例程可以工作,因为我在单元测试中对它进行了测试,当从本地运行的服务调用它时,它也可以工作。删除服务周围的日志记录层后,我可以看到日志记录层中没有的堆栈跟踪
原来是配置疏忽-堆栈跟踪显示我错过了与存储数据库登录详细信息相关的部署脚本。网页或web服务上的HTTP 500错误强烈表明遇到了未处理的异常。您能告诉我们组成服务的代码吗?在原始问题中添加了一个服务调用,但这与在本地服务上运行并起作用的代码相同。不幸的是,日志组件似乎有问题,我也没有得到日志文件:(-我正在调查的另一个问题。可能这就是未处理异常的来源;-)不幸的是,没有:(-我在没有日志包装的情况下进行了测试,并收到了相同的错误消息。
[FaultContract(typeof(Exception))]
public DataTable GetBranchList(DateTime ReportDate)
{
try
{
return zzzLibrary.GetBranchList(ReportDate);
}
catch (Exception ex)
{
throw LogAndThrow(ex);
}
}
protected FaultException LogAndThrow(Exception ex)
{
log.Error("Error in the zzz Service.", ex);
return new FaultException(new FaultReason(ex.Message));
}
public static DataTable GetBranchList(DateTime ReportDate)
{
DbInstance db = GetDBConnection();
try
{
string SQLText = "zzzschema.usp_zzzGetBranchList";
return db.QueryReturningDataTable(SQLText, CommandType.StoredProcedure, db.CreateParameter("@ReportDate", ReportDate));
}
finally
{
db.Close();
}
}