2013-08-26 54 views
0

我開發了一個使用Prism的Silverlight業務應用程序,需要用戶在他們可以訪問主應用程序之前登錄。 Silverlight應用程序託管在IIS 7.5(端口*:8086)上,並調用託管在IIS 7.5(端口*:8069)相同實例上的WCF服務Silverlight Prism查看切換受URL影響?

當我通過http://localhost:8086訪問Silverlight應用程序時, (即成功驗證後,棱鏡模塊被加載並且視圖切換正常),但是當我通過機器名稱(http://xps1521-pc:8086)或IP地址(http://192.168.10.104:8086)訪問它時,它不能按預期工作(即,在成功驗證後,棱鏡模塊加載但是視圖沒有切換)。我似乎無法弄清楚爲什麼會發生這種情況,並希望得到一些幫助/指導。

謝謝!

回答

1

您所提交的異常仔細檢查之後,我覺得這是問題。

很可能您正在ViewModel訂閱處理程序中使用某種反射代碼(或打開UI對話框),該處理程序只能在Silverlight以完全信任模式運行時執行。

因此,當silverilght應用程序的URL從localhost(您的開發服務器)以外的地方改變時,它不再以完全信任模式運行,這就是爲什麼你會得到這個異常。

你必須檢查你是否正在使用屬性[SecurityCritical]執行任何方法調用。如果是這樣,並且如果確實需要執行該方法,則必須以完全信任模式運行Silverlight客戶端(不建議,因爲這隻適用於Intranet方案)。

更多info

希望它可以幫助

+0

感謝您的輸入看到這一點。這很可能是一個安全問題。我對完全信任模式沒有任何保留,因爲所述的Silverlight應用程序只能在Intranet環境中運行。 – Izmoto

+0

如果您發佈在您的事件處理程序中正在執行的代碼,我可以仔細查看它。 – tmoreira

+0

從http://msdn.microsoft.com/en-us/library/ff921131(PandP.20).aspx - 我瞭解到* Silverlight不支持對lambda表達式或匿名委託的弱引用。對於Silverlight,您需要調用一個單獨的方法。*當我使用帶有lambda表達式的Prism EventAggregator並使用單獨的方法引發異常時,不會再引發異常。 – Izmoto

0

我已經跟蹤我的困境爲MethodAccessException描述here