2011-03-19 49 views
0

我正在寻找关于完成将我的C#应用​​程序作为Web应用程序运行的最佳方法的建议。我的应用程序将一个文件和一些配置设置作为输入,它会针对该文件运行一些脚本,然后输出一个新文件。C#作为web应用程序

我希望能够将其作为Web服务运行,以便通过在后端保留.exe和引用的DLL来从任何操作系统访问它。

有什么办法可以做到这一点?我知道我可以选择启动一个虚拟服务器并使用RDP,但我想让它成为一种本地的网络体验。

  • WCF是解决方案吗?
  • XAML?
  • 微软是否有解决方案来获取.exe并在IIS Web服务器上运行它?

谢谢!

回答

-1

WCF是一种服务而不是可执行的东西,你可以在浏览器中的WPF应用程序一看,或Silverlight ...

在两者之间,强烈建议Silverlight的同时,更异质性。 bwpf更容易,因为刚做,当您创建一个WPF应用程序你做了什么,但只能在IE下运行

http://silverlight.net/装载的是建立与Silverlight和它在IIS下运行ONLY

浏览器WPF是你的EXE和DLL的东西...

+0

-1:这对他的特殊问题有什么帮助? – 2011-03-19 02:01:44

+0

@john saunders:他问的是如何访问不同的操作系统,然后silverlight和bwpf是解决方案,他们可以使用dll构建函数,wcf作为服务在桌面应用程序和Web应用程序之间进行通信... 也许是因为我的英文不是很好,我的解释不是很清楚,但是这就是= D – 1myb 2011-03-19 03:41:55

+0

他问如何访问_his现有application_。 SilverLight将被重写。 – 2011-03-19 03:45:26

0

你可以用一个简单的Web应用程序很容易地做到这一点;你不需要做太多特别的事情。简单地用Process类调用你的EXE:

Process myApp = new Process(); 
myApp.StartInfo.FileName = ConfigurationManager.AppSettings["myAppLocation"]; 
myApp.StartInfo.CreateNoWindow = true; 
myApp.Start(); 
myApp.WaitForExit(); 

// Open file and read it 
// Additional Info at http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx 

然而,更好的选择,简直是从您的EXE提取代码(你可能有地方的代码),并介绍,作为一个类库为您的Web项目消耗。

+0

第一种解决方案假定他的可执行文件的多个实例可以同时运行。例如,如果脚本为临时文件使用硬编码名称,并且两个用户同时尝试使用该网页,则可能会发生各种不良情况。 – R0MANARMY 2011-03-19 02:03:35

+0

确实如此,这就是为什么我建议他将代码提取到可重用的类库中。当一个Web请求尝试使用共享资源时,总会存在竞争= D – Tejs 2011-03-19 02:05:50

+0

True ....但是添加与类库相同的代码不会自动修复使用共享资源的(假设)问题,应该分开处理。如果你愿意,可以给这个答案添加一个警告,我会删除我的评论=)。 – R0MANARMY 2011-03-19 02:15:25

0

除非有绝对需要将现有的应用程序保持为在后端调用的.exe的最简单的解决方案是将您的C#代码集成到简单的ASP.NET Web应用程序中。您可以引用Web应用程序中的现有DLL以在服务器端使用tem。检查出的教程上制作一个简单的ASP/NET的Web应用程序,如:

http://www.kirupa.com/net/helloWorld.htm

只需添加一个HTML输入字段以允许用户上传的文件,并进行了下载链接输出文件。