如何从Azure Mobile Service C#后端提供静态内容

时间:2015-02-03 18:41:25

标签: c# azure azure-mobile-services

我正在运行移动服务实例( C#backend ),除了所有其他功能外,我还需要托管一些html页面及其各自的css文件。

以下是我的尝试:

  1. 如果我浏览http://<service-url>/myfile.html,我会收到404错误。所以我 创建了一个myfile.html文件,并将其粘贴在项目根文件夹中。现在,我得到一个空白页而不是404。
  2. 我通过将html文件放在ContentController中尝试浏览<project root>\api\Content\Views\myfile.html。当我浏览http://<service-url>/api/Content/Views/myfile.html时,我会看到一个空白页。

1 个答案:

答案 0 :(得分:0)

2015年12月更新 既然微软已经发布了应用服务,您应该使用它 - 创建一个移动应用程序和一个Web应用程序,您就完成了。 不要试图破解移动服务。 我总觉得移动服务是半生不熟的解决方案。它更像是Parse.com和类似的BaaS的竞争者,并且错过了很多你期望从Azure服务中获得的东西。

<强>更新 下面的解决方案不起作用,但它确实教会了很多关于如何构建移动服务的知识。解决方案不起作用的原因是Azure拒绝将静态文件上载到移动服务实例。

首先要了解Owin是什么,移动服务正在使用它。 This post给了我很多帮助。

然后查看this link,其中介绍了如何使用katana构建文件服务器。

以下是简短说明:

安装nuget包Microsoft.Owin.StaticFiles

插入OwinAppBuilder并指示它在您运行原始文件之前使用Katana的文件服务器(将其放在WebApiConfig.cs中):

var originalAppBuilder = StartupOwinAppBuilder.OwinAppBuilder;
StartupOwinAppBuilder.Initialize(builder =>
{
    builder.UseFileServer("/static");
    originalAppBuilder(builder);
}

在项目根目录中创建一个static文件夹,在其中放置一些文件并浏览到<your service url>/static/somefile.html