名称为“httpRequest”的属性不存在

时间:2011-08-23 07:39:09

标签: wcf azure

我使用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>

1 个答案:

答案 0 :(得分:1)

详细描述了解决方案here。但是你需要在正确的方向上轻推,这是非常难以找到的。我们前一段时间遇到过同样的问题,所以我写了一篇博文about httpRequest not being present exception(WCF)。

总结一下,将您的调用包装在以下代码中:

    using (new OperationContextScope((IContextChannel)channel))
    {
       // ... my code
    }