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