AppHarbor - /order/rpc.ashx(1):错误ASPPARSE:无法创建类型'web.order.rpc'

时间:2013-04-19 20:24:45

标签: c# compiler-errors appharbor

这是我第一次尝试在appharbor上运行项目

该解决方案引用了许多其他项目dll。 构建在本地工作,我使用git将其推送到appharbor。

我在构建失败时收到此消息: /order/rpc.ashx(1):错误ASPPARSE:无法创建类型'web.order.rpc'。

[HttpParseException]:无法创建类型'web.order.rpc'。

at System.Web.UI.SimpleWebHandlerParser.GetType(String typeName)

在System.Web.UI.SimpleWebHandlerParser.GetTypeToCache(Assembly builtAssembly)

...

在System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback回调,List`1 excludedVirtualPaths)

at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback,Boolean forceCleanBuild)

在System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback回调)

在System.Web.Compilation.Precompiler.Main(String [] args)

源代码非常简单:

namespace web.order

{

public class rpc : IHttpHandler

{

    public void ProcessRequest(HttpContext context)
    {
        var Response = context.Response;
        var Request = context.Request;

        Response.Expires = 0;
        Response.ContentType = "text/plain";
        Response.Write("{}");

    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

}

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

好的我遇到的问题与您预先编译包含子Web应用程序的网站相同。

解决它的检查清单是:

  1. 确保ashx的dll位于bin目录中。
  2. 如果您使用的是代码隐藏文件,请确保cs文件包含在文件夹App_Code
  3. 您可以尝试在本地编译该文件夹,以便查看是否缺少某些内容:
  4.   

    c:\ windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_compiler.exe -v   / -p“c:\ your \ webs \ folder”-errorstack

    此命令可帮助您检查可能出现的错误。

    我的情景有点不同。在远程服务器(IIS 7.5,我不使用appharbor)中,我使用以下方法检查了创建项目的站点:

      

    c:\ windows \ system32 \ inetsrv \ appcmd list sites

    然后我检查了哪个是我想要预编译的网站的ID。 在我的样本中它是5,然后我运行:

      

    c:\ windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_compiler.exe -m LM / W3SVC / 5 / ROOT -c -errorstack

    它编译了。

    另一种进行编译的方法是将包含ashx的dll从子应用程序文件夹复制到主站点bin文件夹,但这可能会导致问题和依赖性问题。