0

This is my first attempt at getting a project running on appharbor

The solution references a number of other project dlls. The build works locally and I am using git to push it to appharbor.

I get this message as the build fails: /order/rpc.ashx(1): error ASPPARSE: Could not create type 'web.order.rpc'.

[HttpParseException]: Could not create type 'web.order.rpc'.

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

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

....

at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)

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

at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback)

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

The source code is pretty simple:

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;
        }
    }
}

}

Any help would greatly be appreciated

4

1 回答 1

1

好的,在预编译包含子 Web 应用程序的站点时,我遇到了与您相同的问题。

解决它的检查清单是:

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

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 列出站点

然后我检查了哪个是我想要预编译的站点的 id。在我的示例中是 5,然后我运行:

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

它编译。

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

于 2013-08-24T01:48:19.290 回答