創建網址我開始的Visual Studio 2012與SignalR工作,到目前爲止,我得到了它的基本竅門,我自己引導通過this例子(你可以在瀏覽網頁的代碼)。我決定爲所述示例添加REST服務,因此我添加了一項基本服務,並且它工作正常。SignalR - 不能爲HubConnection
我希望採取的下一步是在服務和SignalR之間添加一個通信,因此根據示例向我顯示的內容,我只需要通過項目中的url創建HubConnection(在這種情況下,該示例使用url http:localhost:4200)。您可以檢查WorkerRoleHubConfiguration類,它具有下一行的方法:
return RoleEnvironment.GetConfigurationSettingValue("GUI_URL");
哪裏GUI_URL是http:本地主機:4200。
在我的服務類,那麼我只是添加了以下的方法:
var url = RoleEnvironment.GetConfigurationSettingValue("http://localhost:4200");
try
{
HubConnection _connection = new HubConnection(url);
IHubProxy _hub = _connection.CreateProxy("SiteMonitR");
_hub.Invoke("displayResult");
}
catch (Exception ex)
{
error = ex.ToString();
}
但是拋出異常,this之一。
我不undertand爲什麼我可以以同樣的方式的例子確實獲得url,因爲它是在服務器類來完成,因爲我做的一切。
我想要達到的目標是,當一個端點accesed並在我的系統有新的變化,SignalR通知給連接它的客戶端。
我希望有人能幫助我理解這有什麼錯我的工作。
編輯
我加入我的ServiceConfiguration.Local.cscfg,我ServiceConfiguration.Cloud.cscfg和ServiceDefinition.csdef中文件作爲參考here,我覺得這個問題應該在那裏,但說實話,我不知道爲什麼這不起作用。
EDIT 2
,我發現了以下情況例外,在這條線var url = RoleEnvironment.GetConfigurationSettingValue("http://localhost:4200");
唯一的例外是:
SEHExcetion occurred. External component has thrown an exception.
所以如果我使用相同的網址,爲什麼它不工作?我必須以不同的方式參考它嗎? –
我改變了我如何得到這樣的網址'var url = RoleEnvironment.GetConfigurationSettingValue(「GUI_URL」);'但是我得到了一個異常'外部組件拋出了一個異常。「我真的失去了爲什麼我不能創建HubConnection對象,還是我誤解了一些東西? –
RoleEnvironment.GetConfigurationSettingValue(「name」)是從Azure設置文件中使用key =「name」獲取值的Azure方法。你有URL,只需使用var url =「http:// localhost:4200」。如果您未在Azure或Azure模擬器中運行網站,則RoleEnvironment.GetConfigurationSettingValue()將始終返回一個異常,同樣,如果該設置不存在,您將收到錯誤。 – viperguynaz