3
Web服務正在IIS中運行。 當調用初始化服務時,爲了啓動一個wpf應用程序,動態加載了一些庫。如何從Web服務啓動WPF應用程序?
代碼編譯,運行...但窗口永遠不會顯示。無論如何不會有任何例外。
下面是執行以創建WPF應用程序的代碼:
public void Start()
{
ThreadStart ts = Run;
Thread t = new Thread(ts);
t.SetApartmentState(ApartmentState.STA);
t.Start();
}
[STAThread]
public void Run()
{
try
{
App app = new App();
MainWindow w = new MainWindow();
w.Show();
app.Run(w);
} catch (Exception e)
{
LogManager.GetLogger("general").Debug(e.StackTrace);
}
}
如果我運行在一個控制檯應用程序,它完美的作品:
static void Main(string[] args)
{
MyApplication app = new MyApplication();
app.Start();
Console.ReadKey();
}
但如果我從運行Web服務代碼被正確執行(因爲我可以調試它,並且沒有例外),但窗口從不出現:
public void initialize() {
IMyApplication application = assembly.CreateInstance(namespaceValue + ".MyApplication") as IMyApplication;
application.Start();
}
我可以在進程管理器中看到WPF進程正在運行...任何想法爲什麼窗口不顯示?
問候,
弗朗索瓦
有什麼特別要做授予所有訪問/ - 瑞到web服務?
hummm,我不是SII ...... 的類專業,但我可以在該Web服務使用應用程序保護管理配置工具,請參閱:中等(池) 是否回答這個問題? – Francois 2010-01-08 10:38:37
在Web.config文件中,我有這樣的: –
Francois
2010-01-08 10:42:26
實際上,這個想法是在Web服務之上構建一個桌面應用程序,以在同一臺機器上本地管理業務模型。因此,爲了共享內存中的對象,Web服務必須實例化應用程序並將業務模型傳遞給它。對於性能問題,我不想在本地與Web服務通信。 – Francois 2010-01-08 12:25:39