1
我已經爲Windows服務器設置了服務總線1.1,並嘗試使用以下代碼訪問它。從Windows服務訪問服務總線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.QueueExists(queuename)
中時出現以下異常。
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 ---
有人能幫我理解我在做什麼錯嗎?
請刪除您的問題 - 哪一個是您自己的代碼中的錯誤... – Sreeram
@Sreeram:我可以刪除它,但花了將近2天才弄清楚如何使其工作。互聯網上幾乎沒有資源可以告訴你如何做到這一點。所以我以爲我會把它留在這裏,以防其他人有類似的問題。 – Kiran
@Kiran,我不認爲這是刪除問題的有效理由。你應該刪除你的downvote。 FYI:我發現這篇文章很有幫助。這不是一個錯誤,而是微軟提供的一個完整的walkthru。我無法在其他地方找到這個答案! – maplemale