Windows services 从windows服务访问服务总线1.1
我已经为windows server设置了一个服务总线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
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 ---