我使用Azure Service Management API遇到了一个有趣的问题。具体来说,当我尝试任何操作时,我在'/'应用程序中得到“服务器错误”。 名称为“httpRequest”的属性不存在。 ”
这只发生在一个项目中,我无法通过创建其他项目来重现它。
我试过阅读Fusion日志,因为我怀疑组装版本存在问题,但结果并非如此。 我也试过读取引用,这也没有用。
我被困 - 有人知道吗?
<InnerException i:nil="true"></InnerException>
<Message>A property with the name 'httpRequest' is not present.</Message>
<StackTrace>
Server stack trace:
at System.ServiceModel.Channels.MessageProperties.get_Item(String name)
at Microsoft.Toolkit.WindowsAzure.ServiceManagement.ClientOutputMessageInspector.BeforeSendRequest(Message& request, IClientChannel channel)
at System.ServiceModel.Dispatcher.ImmutableClientRuntime.BeforeSendRequest(ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.PrepareCall(ProxyOperationRuntime operation, Boolean oneway, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()
at System.ServiceModel.Channels.ServiceChannel.BeginCall(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, TimeSpan timeout, AsyncCallback callback, Object asyncState)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeBeginService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
</StackTrace>
答案 0 :(得分:1)
详细描述了解决方案here。但是你需要在正确的方向上轻推,这是非常难以找到的。我们前一段时间遇到过同样的问题,所以我写了一篇博文about httpRequest not being present exception(WCF)。
总结一下,将您的调用包装在以下代码中:
using (new OperationContextScope((IContextChannel)channel))
{
// ... my code
}