WindowsボックスでMonoとXSPを使用したサンプルWebページ
質問
Mono およびXSP Webサーバー。
このチャプター例に従っています。彼の例の最初の部分は、最新バージョンのモノ。ただし、Webパーツは次のエラーで倒れているようです
'{パス名} \ Index.aspx.cs'は 有効な仮想パス。
完全なスタックトレースは次のとおりです。
System.Web.HttpException: 'C:\Projects\Mono\ASPExample\simpleapp\index.aspx.cs' is not a valid virtual path.
at System.Web.HttpRequest.MapPath (System.String virtualPath, System.String baseVirtualDir, Boolean allowCrossAppMapping) [0x00000]
at System.Web.HttpRequest.MapPath (System.String virtualPath) [0x00000]
at System.Web.Compilation.BuildManager.AddToCache (System.String virtualPath, System.Web.Compilation.BuildProvider bp) [0x00000]
at System.Web.Compilation.BuildManager.BuildAssembly (System.Web.VirtualPath virtualPath) [0x00000]
at System.Web.Compilation.BuildManager.GetCompiledType (System.String virtualPath) [0x00000]
at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (System.String virtualPath, System.Type requiredBaseType) [0x00000]
at System.Web.UI.PageParser.GetCompiledPageInstance (System.String virtualPath, System.String inputFile, System.Web.HttpContext context) [0x00000]
at System.Web.UI.PageHandlerFactory.GetHandler (System.Web.HttpContext context, System.String requestType, System.String url, System.String path) [0x00000]
at System.Web.HttpApplication.GetHandler (System.Web.HttpContext context, System.String url, Boolean ignoreContextHandler) [0x00000]
at System.Web.HttpApplication.GetHandler (System.Web.HttpContext context, System.String url) [0x00000]
at System.Web.HttpApplication+<Pipeline>c__Iterator5.MoveNext () [0x00000]
このエラーの意味を誰かが知っているかどうか疑問に思っていました。私はWindowsバージョンを試したモノの専門家を探していると思います。
解決 3
「コードビハインド」を取得する方法がわからない動作しているものですが、私は満足している回避策を見つけました。他の人のためにここに投稿したいと思いました。基本的に、メインページにコードを移動し、
を使用するだけでうまく機能しますXSDコマンドとパラメーターなし。
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Code behind Arrrrrrrrrrgh</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script runat="server">
private void Page_Load(Object sender, EventArgs e)
{
DisplayServerDetails();
DisplayRequestDetails();
}
private void DisplayServerDetails()
{
serverName.Text = Environment.MachineName;
operatingSystem.Text = Environment.OSVersion.Platform.ToString();
operatingSystemVersion.Text = Environment.OSVersion.Version.ToString();
}
private void DisplayRequestDetails()
{
requestedPage.Text = Request.Url.AbsolutePath;
requestIP.Text = Request.UserHostAddress;
requestUA.Text = Request.UserAgent;
}
</script>
</head>
<body>
<form method="post" runat="server">
<table width="450px" border="1px">
<tr>
<td colspan="2"><strong>Server Details</strong></td>
</tr>
<tr>
<td>Server Name:</td>
<td>
<asp:Label id="serverName" runat="server"></asp:Label></td>
</tr>
<tr>
<td>Operating System:</td>
<td>
<asp:Label id="operatingSystem" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>Operating System Version:</td>
<td>
<asp:Label id="operatingSystemVersion" runat="server">
</asp:Label>
</td>
</tr>
</table>
<br>
<table width="450px" border="1px">
<tr>
<td colspan="2"><strong>Request Details</strong></td>
</tr>
<tr>
<td>Page Requested:</td>
<td>
<asp:Label id="requestedPage" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>Request From:</td>
<td>
<asp:Label id="requestIP" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>User Agent:</td>
<td>
<asp:Label id="requestUA" runat="server"></asp:Label>
</td>
</tr>
</table>
</form>
</body>
他のヒント
xspの起動に使用しているコマンドラインを貼り付けることはできますか?単一のwebappを実行しているだけの場合、このようなものは実際には必要ではなく、問題の原因になる可能性があります。
xsp --applications / SimpleWebApp:C:\ Projects \ Mono \ ASPExample \
ASPExampleディレクトリにcdし、パラメータなしでxspを実行します。
使用していたコマンドは次のとおりです:
@echo off
call C:\PROGRA~1\MONO-2~1.1\bin\setmonopath.bat
xsp --root . --port 8088 --applications /:.
XSPをパラメーターなしで実行しようとすると、次の出力が表示されます:
xsp2リスニングアドレス:0.0.0.0 ルートディレクトリ: C:\ Projects \ Mono \ ASPExample待機中 ポート:8080(非セキュア)ヒットリターン サーバーを停止します。
プロジェクトを参照しようとすると
以前と同じ出力が得られます。 csファイルが有効な仮想パスではないとうめきます。
ASPXページのsrc属性が問題であると考えています。おそらく、Monoの新しいバージョンで更新されているでしょう。それについて見ていきます。
お返事ありがとうございます。
デイブ
xspではなくxsp2を実行しようとしましたか?