我正在开发嵌入式设备的应用程序,我们希望添加对设备的远程访问。 ASP.Net 5看起来非常有吸引力,因为它提倡它可以自我托管。
我看了几个博客(例如http://blog.tomasjansson.com/asp-net-5-self-hosting-the-application/),发现可以从IIS外的命令行运行mvc项目。但是可以在C#应用程序中托管mvc项目而无需从命令行调用它吗?
在博客之后,我将此命令添加到project.json。
<select ng-model="mySelectedChoice" ng-options="myChoice.name as myChoice.name for myChoice in myChoices"></select>
selceted value is {{mySelectedChoice}}
<ul ng-show="mySelectedChoice">
<li ng-repeat="item in foo.items | filter:{propertyIWantToMatchOn: mySelectedChoice}">{{item.someDisplayText}}</li>
</ul>
看起来程序集Microsoft.AspNet.Hosting具有托管mvc应用程序的实际代码。但我找不到任何关于它的文件。
感谢任何建议。谢谢!
答案 0 :(得分:0)
我想出了一个在我的应用程序中运行mvc6的临时解决方案。
首先,将应用程序发布到c#解决方案的输出目录。然后,我创建一个新进程来调用命令来启动mvc6应用程序。这个问题是mvc6在我的c#app的独立应用程序域中运行,我必须使用其他进程间通信技术来桥接这两者。
代码如下:
string appDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string mvcProjectPath = appDir + @"\DirOfPublishedMVC";
_process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo { WindowStyle = ProcessWindowStyle.Hidden, FileName = "web.cmd", WorkingDirectory = mvcProjectPath };
_process.StartInfo = startInfo;
_process.Start();
web.cmd由publish命令生成,该命令在project.json命令部分中定义。