Asp.net 使用Web API托管jQuery移动应用程序

Asp.net 使用Web API托管jQuery移动应用程序,asp.net,vb.net,jquery-mobile,Asp.net,Vb.net,Jquery Mobile,我已经为jQuery移动应用程序编写了一个非常基本的教程,其中包含一个使用VS2013和VB.NET的Web Api的非常基本的教程。Web Api仅用于我的应用程序中的UI,作为html和asp.net之间的桥梁。它在我的开发机器上运行得很好,但当我将其移动到宿主服务(WinHost)时,WebAPI部分失败。我假设有一个web.config条目可以解决这个问题——但是,我完全不明白这一点。html/jQuery代码是: <!DOCTYPE html> <html>

我已经为jQuery移动应用程序编写了一个非常基本的教程,其中包含一个使用VS2013和VB.NET的Web Api的非常基本的教程。Web Api仅用于我的应用程序中的UI,作为html和asp.net之间的桥梁。它在我的开发机器上运行得很好,但当我将其移动到宿主服务(WinHost)时,WebAPI部分失败。我假设有一个web.config条目可以解决这个问题——但是,我完全不明白这一点。html/jQuery代码是:

<!DOCTYPE html> 
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
    <link rel="stylesheet" href="css/custom.css" />
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mobile/1.3.2/jquery.mobile.min.js"></script>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
    <title>Boilerplate</title> 
    <script>
      var uri = 'api/class1s';
      function formatItem(item) {
        return item.field1;
      }
      function find() {
        var id = $('#prodId').val();
        $.getJSON(uri + '/' + id)
          .done(function (data) {
            $('#product').text(formatItem(data));
          })
          .fail(function (jqXHR, textStatus, err) {
            $('#product').text('Error: ' + err);
          });
      }
    </script>
  </head> 
  <body>
    <div data-role="page">
      <div data-role="header">
        <h1>Boilerplate</h1>
      </div>
      <div data-role="content"> 
        <p>Page Body content</p>
        <div>
          <input type="text" id="prodId" size="5" />
          <input type="button" value="Search" onclick="find();" />
          <p id="product" />
        </div>
      </div>

      <div data-role="footer">
        <h4>Footer content</h4>
      </div>
      <a href="{dynamic location}" class="fullSiteLink">View Full Site</a>

    </div>
  </body>
</html>
还有一个用于定义数据的类和一个用于填充数据并通过Web Api返回数据的
控制器。
这些操作不应影响此问题(并且在我的台式电脑上工作正常)。
否则,这只是一个标准的VS2013 ASP.Net 4.5.1项目,使用选中Web Api选项的空网站


有没有办法让这个程序在主机服务上运行?

你看到什么错误了吗?嗨,道格拉斯,谢谢你的提问,但现在已经修复了。这是我的主机服务的设置问题,我只是忘记了。即使该站点以HTML页面开始,VB部分仍然要求在托管服务上将该站点配置为ASP站点。很高兴听到这个消息。:)
<configuration>
  <appSettings></appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
  </system.web>
  <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" 
        type="System.Web.Handlers.TransferRequestHandler"       
        preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
</configuration>
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web.Http

Public Module WebApiConfig
  Public Sub Register(ByVal config As HttpConfiguration)
    ' Web API configuration and services

    ' Web API routes
    config.MapHttpAttributeRoutes()

    config.Routes.MapHttpRoute(
      name:="DefaultApi",
      routeTemplate:="api/{controller}/{id}",
      defaults:=New With {.id = RouteParameter.Optional}
    )
  End Sub
End Module