是否可以在Azure Web角色中运行F#WebApi(OWIN)项目?

时间:2014-09-28 15:54:39

标签: c# azure f# azure-web-roles

我不确定这是否是特定于F#或其他内容,但在尝试本地调试Azure云服务时可能会导致以下错误消息:

  

有问题的Web角色似乎不是一个Web应用程序类型的项目。

我在解决方案中添加了一个 F#web api项目(添加了Global.asax等,我添加了一个OWIN启动类Startup等),然后从我选择的现有云服务项目中添加Roles并选择了Add -> Web Role Project in solution,它找到了F#web项目(其项目类型guid为349C5851-65DF-11DA-9384-00065B846F21F2A71F9B-5D33-465A-A702-920D77279786),其中第一项似乎正是GUID定义Web应用程序类型。

但是,当我尝试在本地启动云项目时,我收到上述错误消息。我有一个C#Web角色项目,将在我删除F#项目时启动。如果我删除此F# Web角色项目,我还有以C#web角色项目开头的F# worker role 项目。如果我将F#web项目设置为启动项目,它会启动并按正常情况运行。

现在,我想知道这是否与F#有关,或者这个错误消息是否也出现在C#中,但我在Google上找不到任何内容。有人能说清楚这个吗?

< edit:此外,在F#中尝试在项目设置中打开Package/Publish Web标签时,会显示以下错误消息

  

尝试加载页面时出错。指定演员表无效。

我怀疑这并不重要,可能只是VS如何处理项目或F# MVC 5 template中的错误。

<编辑排序解决方案:

它看起来像是一个创建e Web Role作为C#项目的解决方案,然后将Web项目包含在普通的F#项目中。需要注意的是,在此期间,F#Web API模板已更新。截至目前,我使用了1.1版本的F#MVC模板中的Web API 2.2和Katana 3.0。作为许多事情中的一个奖励,看起来这个模型具有减少部署包大小的额外好处,如 Olaf Loogman Reducing the size of an Azure Web Role deployment package发表的博客。

可以从Tips for Publishing Multiple Sites in a Web Role获得针对一个角色发布多个网站的直接说明。

1 个答案:

答案 0 :(得分:3)

旧版F#工具发生指定的强制转换无效错误。 3.1.2应该解决这个问题。

我个人创建了标准的工作者角色项目没有问题,而且f#网站托管在azure,但不是f #Web角色 - 我怀疑对它们的支持并不是很好。出于好奇,你为什么要使用网络角色而不是网站项目?