我最近从VS 2010升级到VS 2012,现在我正在升级我的解决方案和项目。我有一个包含两个服务引用的Web项目。一种是包含在解决方案中的自定义Web服务(.asmx),另一种是第三方供应商服务。该解决方案在本地构建和运行时没有任何问题,但是当我部署时,从自定义服务中调用供应商服务时会抛出异常。一切仍然适用于VS 2010所以我想知道VS 2012发生了什么。我做了一些earching,看起来它可能与WCF IDisposable问题有关,但我无法得到任何推荐的解决方案这是失败的代码。
[WebMethod(EnableSession = true)]
public AuthorizationToken GetAuthorizationToken()
{
String result = String.Empty;
AuthorizationToken token = null;
try
{
if (_session[Constants.SessionTokenKey] == null)
{
using (var client = new abcXMLSoapClient())
{
token = client.Authenticate("xxx", "pwd", out result);
}
if (token != null)
_session.Add(Constants.SessionTokenKey, token);
}
else
token = (AuthorizationToken)_session[Constants.SessionTokenKey];
}
catch (Exception e)
{
LogException(e, "GetAuthorizationToken");
}
return token;
}
创建客户端没有任何问题,但在尝试进行身份验证时抛出异常。我得到的例外是
The communication object, System.ServiceModel.ChannelFactory`1[abc], cannot be used for communication because it is in the Faulted state
先谢谢。