我不确定这是否是特定于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-00065B846F21
和F2A71F9B-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获得针对一个角色发布多个网站的直接说明。
答案 0 :(得分:3)
旧版F#工具发生指定的强制转换无效错误。 3.1.2应该解决这个问题。
我个人创建了标准的工作者角色项目没有问题,而且f#网站托管在azure,但不是f #Web角色 - 我怀疑对它们的支持并不是很好。出于好奇,你为什么要使用网络角色而不是网站项目?