使用SQLite将ASP.NET MVC应用程序部署到Azure网站

时间:2015-08-31 18:42:09

标签: asp.net-mvc sqlite azure

我有一个包含Web API 2服务的ASP.NET MVC 5应用程序,我将它发布到我的Azure网站。静态网站工作正常 - 当我提供虚拟数据时,Web API也能正常工作。

由于我添加了一个SQLite数据库(在.db3内的App_Data文件中),我无法再调用我的Web API服务 - 我只是收到“发生错误”消息,而我似乎无法找出如何真正弄清楚出了什么问题。

我还在我的应用程序中安装了带有XML文件存储的Elmah.MVC,但是当我尝试导航到http://myapp.azurewebsites.net/elmah时,我什么都没得到 - 好像没有发生任何错误......

好的,现在我卡住了 - 当然在我的机器上 - 当然 - 一切正常。但是整个Azure部署故事对我来说仍然是一个很大的谜 - 现在仍然如此。

  1. 如何找到任何类型的错误日志,以便我可以开始了解发生了什么?
  2. 有什么办法可以看到构成这个应用程序的文件系统中的文件吗?我想检查一下我期待看到的所有文件是否真的到位
  3. 更新:感谢大卫的回答,我能够使用FTP访问“详细”错误页面(我只是记得在门户网站I中实时显示日志消息的演示相信 - 必须使用FTP来获取日志似乎有点“笨拙”......)

    我收到此错误(我完全不理解,不知道该怎么做......)

      

    HTTP错误500.0 - 内部服务器错误

         

    由于发生内部服务器错误,无法显示页面。

         

    最有可能的原因是:

         

    IIS收到了请求;但是,在处理请求期间发生了内部错误。此错误的根本原因取决于哪个模块处理请求以及发生此错误时工作进程中发生的情况   IIS无法访问网站或应用程序的web.config文件。如果NTFS权限设置不正确,则会发生这种情况   IIS无法处理网站或应用程序的配置   经过身份验证的用户无权使用此DLL   请求将映射到托管处理程序,但未安装.NET可扩展性功能。

         

    你可以尝试的事情:

         

    确保web.config文件的NTFS权限正确,并允许访问Web服务器的计算机帐户。
      检查事件日志以查看是否记录了任何其他信息   验证DLL的权限   如果请求映射到托管处理程序,请安装.NET Extensibility功能   创建跟踪规则以跟踪此HTTP状态代码的失败请求。有关为失败的请求创建跟踪规则的更多信息,请单击此处。

    我希望自己能够在Azure网站设置中尝试任何“可以尝试的东西”......任何参与者?

    更新#2:进行了一些“奥术”调试,我能够发现根错误是:

      

    DllNotFoundException:无法加载DLL'SQLite.Interop.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)

    所以我的问题是:SQLite.Interop.dll是什么,我为什么需要它?我刚刚安装了System.Data.SQLite.Core NuGet包(不需要EF6支持等) - 本地工作正常,但是当部署到Azure网站时,突然发现额外的DLL被搜索到但没有找到....为什么会这样?

2 个答案:

答案 0 :(得分:4)

基于网络的服务控制经理是你的朋友。在任何浏览器中转到myapp.scm.azurewebsites.net

Kudu Service Control Manager

要查看文件系统中的文件,请从服务控制管理器转到调试控制台>电源外壳。这使您可以使用PowerShell检查所有文件。

要查看正在显示的日志消息,请从服务控制管理器转到工具>记录流。这将显示您想要的流日志。

答案 1 :(得分:2)

您可以使用“诊断”设置打开“Web服务器日志记录”和FTP连接以查看文件系统中的文件。

从任一Azure门户网站打开您的网络应用程序/网站。

Azure管理门户(manage.windowsazure.com):

  1. 开启诊断功能。来自Configure -> application diagnostics/site diagnostics。您可以在此处打开不同的诊断设置。日志文件可通过FTP查看。

  2. FTP。来自Dashboard。列在屏幕右侧,您会看到FTP HOST NAMEDEPLOYMENT/FTP USER。密码与部署凭据设置相同。

  3. 新Azure门户(portal.azure.com)

    1. 开启诊断功能。 Settings -> Diagnostic logs。在这里,您可以打开诊断程序。 FTP主机/用户设置也在这里。
    2. 如果需要,使用Settings -> Deployment credentials设置/重置FTP密码。

      编辑:

      要查看实时流和其他性能监控,您可以使用portal.azure.com管理器中的Tools部分。它位于Settings cog图标的旁边,还会为您提供Console之类的内容,您可以在其中执行针对主机的有限命令。