我已经用Delphi Prism编写了一个ASP.NET Web应用程序(不是网站)。在开发机器上一切正常,但是在测试服务器上安装它时,出现以下错误:
Server Error in '/MyApp' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: 'Oxygene' is not a supported language.
Source Error:
Line 1: <%@ Application CodeBehind="Global.asax.pas" Inherits="MyApp.Global_asax" Language="Oxygene" %>
Source File: /MyApp/global.asax Line: 1
我已经阅读了所有可以在网上找到的内容。不幸的是,有几篇文章提到了RemObjects页面(http://devcenter.remobjects.com/articles/?id={B549AFB8-04C8-4574-B185-30DE14369E66}),该页面不再存在。
一些链接建议您可以将Language =“ Oxygene”更改为Language =“ C#”。尝试这样做会产生另一个错误:
Compiler Error Message: CS1061: 'ASP.login_aspx' does not contain a definition for 'ForgottenUsernameLinkButton_Click' and no extension method 'ForgottenUsernameLinkButton_Click' accepting a first argument of type 'ASP.login_aspx' could be found (are you missing a using directive or an assembly reference?)
还有其他人遇到过这些问题吗?
最佳答案
有几种方法可以解决此问题。最简单的方法:如果控制服务器,则是通过安装命令行版本。
另一种方法是预编译,它是:您需要Web deployment Project来执行此操作。执行此操作时,请确保取消选中可更新选项。
使用2010年8月的版本,您可以将.compiler,.codemodel,.pdb,.cirrus复制到Bin /,然后在您的web.config中添加以下内容:
<system.codedom> <compilers>
<compiler language="Chrome" extension=".pas" type="RemObjects.Oxygene.CodeDom.OxygeneCodeProvider, RemObjects.Oxygene.CodeModel, Version=4.0.0.800, Culture=neutral, PublicKeyToken=3df3cad1b7aa5098" />
<compiler language="Oxygene" extension=".pas" type="RemObjects.Oxygene.CodeDom.OxygeneCodeProvider, RemObjects.Oxygene.CodeModel, Version=4.0.0.800, Culture=neutral, PublicKeyToken=3df3cad1b7aa5098" /> </compilers> </system.codedom>
请注意,这要求版本号(4.0.0.800)必须与您拥有的CodeModel dll的dll版本匹配。