asp.net - 将默认的 MVC 4 模板部署到 Windows Azure

标签 asp.net azure asp.net-mvc-4 asp.net-membership

我对 Windows Azure 非常陌生,正在修改它以了解它的工作原理。为了使事情尽可能简单,我尝试部署 VS 2012 Express for web 生成的默认 MVC 4 模板。我创建了一个新项目 - Azure 云服务。我选择了 MVC 4 Web 角色。这样就创建了一个漂亮的小型 ASP.NET 应用程序,其中包含主页、关于页面和联系页面,以及注册和登录的链接。我只想将此网站部署到 Azure 并查看它在云中的运行情况。

但是,成员(member)资格似乎不适用于 azure 。应用程序的页面显示正确。但是,当我单击“注册”链接时,它不会将我带到输入新用户名和密码的页面。我也不相信在任何地方都会生成成员资格表。

考虑到这是多么简单,我想我一定在某个地方犯了一个愚蠢的错误。如果有人能帮助我解决这个问题,我将非常感激。

另外,郑重声明,我注意到,如果我在 VS2012 Express 中创建一个独立的 MVC 4 项目(而不是具有 mvc 4 Web 角色的 Windows Azure 云服务项目),那么当我右键单击该 MVC4 项目时并选择发布它,它允许我使用连接字符串指定一个sql数据库。更重要的是,一旦发布到 Azure,成员(member)资格就可以完美运行。我可以创建用户帐户并登录。如果我使用 azure 门户检查我的 SQL Azure 数据库,我可以看到其中创建的新成员资格表。

但是,当我尝试使用 MVC4 webrole 发布 Windows Azure 云服务时,我没有看到任何选项来向 azure 项目提供任何类型的连接字符串。也许这就是成员(member)资格不起作用的原因...因为没有与网络角色链接的数据库...但我不知道如何指定这一点。我的印象是,将独立的 MVC4 项目发布到 Azure 和使用 MVC4 Web 角色发布 Azure 云服务是完全相同的事情,如果我错了,请纠正我。不管怎样,我应该能够看到我的 mvc 4 Web 角色的成员资格功能。

以下是重新创建我所拥有的内容的步骤。基本上都是默认的东西:

  1. 在 VS2012 Express 中创建一个新项目 文件 -> 新项目 -> 'Windows Azure 云服务'。

  2. 在下一个屏幕上向其添加 ASP.NET MVC 4 Web 角色。

  3. 在随后的屏幕上选择“Internet 应用程序”。

这 3 个步骤创建一个新项目。它在本地运行得很好。 现在我尝试把它放到云端。

  1. 在解决方案资源管理器中右键单击 Windows Azure 项目,然后选择“发布”。

  2. 选择订阅(我已经拥有可以从 VS 发布到 azure 的证书/凭据,因此我选择了该订阅)

  3. 在下一个屏幕上创建云服务(我将其命名为“garyazurecloudservice”)。

  4. 接受发布向导中的所有默认设置,然后单击“发布”。

发布过程需要几分钟时间。 该网络应用程序可以在http://garyazurecloudservice.cloudapp.net/查看。 .

主页、关于和联系页面均显示正确。但是,如果我单击右上角的“注册”链接,我会看到一个具有正确布局模板的网页,但出现红色错误,内容如下: “错误。处理您的请求时发生错误。”

我尝试在 Azure 上创建 SQL 数据库,但我看不到任何方法将此角色连接到它。也许这就是问题所在?或者也许完全是另外一回事。如果有人能告诉我出了什么问题,我将不胜感激。

我花了一整天的时间在谷歌上搜索并兜圈子,但没有成功。感谢您提供任何帮助。 加里

最佳答案

您说得对,您网站的“成员(member)资格”部分在 Azure 上运行时将无法在后台创建 SQL 表,这只是因为这些表驻留位置的问题。

请记住,Azure 托管空间与传统托管不同,您的站点将存在于虚拟机上,如果第一个虚拟机遇到问题,文件将被复制到另一个虚拟机。另外,如果您调用第二个“服务器”来托管您的网站,以满足负载,可能会发生什么?那么这些表将位于哪里,第二个虚拟机如何知道如何访问第一个虚拟机?

答案是创建一个 SQL Azure 数据库,将表上传到那里,然后您将拥有一个永久位置,可容纳 1、2 或 1000 个运行您网站的“服务器”,以访问您的中央数据库存储库。数据。

我知道在您的示例中,它应该只是“工作”,并且我在某种程度上同意,但是您在本地计算机上或现有(传统)Web 主机上运行的应用程序与 Azure 工作模型有很大不同。

就您有关 SQL Azure 设置如何工作的问题而言,您可能是通过门户网站、www.windowsazure.com 网站创建的?如果是这样,那么您应该能够从那里查看和管理 SQL Azure 数据库,包括访问“连接字符串”部分,您可以将这些内容复制并粘贴到 MVC4 应用程序的 web.config 文件中。从那里,您可以像使用任何其他数据库一样使用该数据库。

我希望这一切都能有所帮助 - Azure 是一头一旦被驯服就美丽的野兽。

关于asp.net - 将默认的 MVC 4 模板部署到 Windows Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065259/

相关文章:

c# - ASP.Net MVC 用户列表及其角色

javascript - 警报在 UpdatePanel VB.Net 中不起作用

azure - 无法读取 Azure IoT 中心 MQTT 订阅消息数据

c# - 将字符串作为文件返回时输出\n 作为换行符

iphone - 如何使用 iPhone 应用程序在 MVC4 apicontroller 中提供用户安全

asp.net - ASCX 控件 ASP.NET - 找不到可见方法

javascript - Asp.net - 页面刷新或重新加载后保持滚动位置

AZure Logic Apps SFTP 连接器回复 504 错误网关

c# - 如何使用Azure函数或逻辑应用将数据保存到sql数据库中?

c# - 何时使用主布局和局部 View MVC c#?