我想在我的WPF應用程序中實現一個簡單的自託管REST API,該API監聽localhost上的特定端口。如果它正在運行,該API將被網站使用以與WPF應用程序進行通信。沒有管理權限的localhost上的自託管REST API
沒過多久,我就遇到了System.ServiceModel.AddressAccessDeniedException錯誤。 URL必須保留,只有當進程以提升的特權運行時才能完成此操作。問題在於,這個應用程序在成千上萬的擁有不同IT策略的公司中使用,這使得應用程序每次啓動時都不可能需要管理權限。
這是我的測試代碼:
_task = Task.Factory.StartNew(() =>
{
var uri = new Uri("http://localhost:5000/test");
var type = typeof (TestService);
WebServiceHost host = new WebServiceHost(type, uri);
WebHttpBinding binding = new WebHttpBinding();
binding.CrossDomainScriptAccessEnabled = true;
host.AddServiceEndpoint(type, binding, uri);
host.Open();
});
是否有解決這個什麼方法?任何我可以使用的第三方軟件包?或者我可以在安裝應用程序時保留URL,因爲安裝需要提升權限?或者這是一個死衚衕?
我用示例代碼更新了我的文章。我綁定localhost:5000/test。感謝關於NancyFX的提示。我會看看它! – sundown
啊,你可能會認爲你對本地主機有約束力。仔細檢查WCF是否將其解釋爲「所有本地地址」。南希確實(或當我上次使用它時)。 –
所以,我嘗試了南希,它工作得很好!讓它與我現有的溫莎城堡容器很好地搭配有點棘手,但我解決了它。再次感謝您的回答! 對於所有其他人,我敢肯定,這裏有更多的答案可以奏效。但我決定把這個標記爲答案。 – sundown