Windows services 从windows服务访问服务总线1.1

Windows services 从windows服务访问服务总线1.1,windows-services,servicebus,Windows Services,Servicebus,我已经为windows server设置了一个服务总线1.1,并尝试使用以下代码访问它 var sbUriList = new List<Uri>() { new UriBuilder { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri }; var httpsUriList = new List<Uri>() { new UriBuilder { Scheme = "http

我已经为windows server设置了一个服务总线1.1,并尝试使用以下代码访问它

    var sbUriList = new List<Uri>() { new UriBuilder { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri };
    var httpsUriList = new List<Uri>() { new UriBuilder { Scheme = "https", Host = ServerFQDN, Path = ServiceNamespace, Port = HttpPort }.Uri };

    NetworkCredential credential = new NetworkCredential("<User Name>", "<Password>", "<Domain>");

    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((s, cert, chain, ssl) => { return true; });

    TokenProvider tokenProvider = TokenProvider.CreateOAuthTokenProvider(httpsUriList, credential);
    messageFactory = MessagingFactory.Create(sbUriList, tokenProvider);



    ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder();
    connBuilder.ManagementPort = HttpPort;
    connBuilder.RuntimePort = TcpPort;
    connBuilder.Endpoints.Add(new UriBuilder() { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri);
    connBuilder.StsEndpoints.Add(new UriBuilder() { Scheme = "https", Host = ServerFQDN, Port = HttpPort, Path = ServiceNamespace }.Uri);

    namespaceManager = NamespaceManager.CreateFromConnectionString(connBuilder.ToString());

if (!namespaceManager.QueueExists(queuename))
{
    namespaceManager.CreateQueue(queuename);
}

有人能帮我理解我做错了什么吗?

终于在我的代码中找到了问题,我想我会分享它,以防其他人也有同样的问题

我的问题是,在名称空间中,我没有如下设置令牌:

namespaceManager.Settings.TokenProvider=TokenProvider


结果是,它使用了错误的令牌进行连接,因此出现了错误。

请删除您的问题-这是您自己代码中的一个错误…@Sreeram:我可以删除它,但我花了将近2天的时间才弄清楚如何使它工作。互联网上几乎没有任何资源可以告诉你如何做到这一点。所以我想我会把它留在这里,以防其他人有类似的问题。@Kiran,我不认为这是删除问题的正当理由。你应该取消你的否决票。仅供参考:我觉得这篇文章很有帮助。这与其说是一个bug,倒不如说是微软缺乏一个完整的演练程序。我在其他任何地方都找不到这个答案!
Unexpected exception : System.UnauthorizedAccessException: The remote server returned an error: (401) Unauthorized. Manage claim is required for this operation..TrackingId:5be1365e-b4ae-4555-b81b-dcbef96be9d0_GIE11LT32PD622,TimeStamp:4/19/2015 3:51:28 PM ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.ServiceBusResourceOperations.GetAsyncResult`1.<GetAsyncSteps>b__2d(GetAsyncResult`1 thisPtr, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
   --- End of inner exception stack trace ---