这是我第一次尝试在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;
}
}
}
}
非常感谢任何帮助
答案 0 :(得分:0)
好的我遇到的问题与您预先编译包含子Web应用程序的网站相同。
解决它的检查清单是:
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文件夹,但这可能会导致问题和依赖性问题。