ASP.NET代码将不会运行,出现错误:找不到资源
本文关键字:错误 资源 找不到 运行 代码 NET ASP | 更新日期: 2023-09-27 18:25:25
我得到了以下代码,我希望在使用IIS 7运行的浏览器中简单地加载页面。
<%@ Page Language="C#" Debug="true" %>
<%
using System;
protected string callRotate()
{
ProcessStartInfo info = new ProcessStartInfo();
string[] arguments = { "arg1" , "arg2" };
info.FileName = "ConsoleApplication1";
Process process = Process.Start(info.FileName, arguments);
Process.Start(info);
}
%>
这是我在浏览器中得到的错误:
Server Error in '/' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1513: } expected
Source Error:
Line 1: <%@ Page Language="C#" Debug="true" %>
Line 2: <%
Line 3: using System;
Line 4:
Line 5: protected string callRotate()
Source File: c:'inetpub'wwwroot'testing'testing.aspx Line: 3
更新1:现在我得到这个错误:
Compiler Error Message: CS1519: Invalid token 'using' in class, struct, or interface member declaration
Source Error:
Line 1: <%@ Page Language="C#" Debug="true" %>
Line 2: <script runat="server">
Line 3: using System;
Line 4:
Line 5: protected string callRotate()
更新2:
错误:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0246: The type or namespace name 'ProcessStartInfo' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
Line 5: protected string callRotate()
Line 6: {
Line 7: ProcessStartInfo info = new ProcessStartInfo();
Line 8: string[] arguments = { "arg1" , "arg2" };
Line 9: info.FileName = "ConsoleApplication1";
Source File: c:'inetpub'wwwroot'testing'testing.aspx Line: 7
这是代码:
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System" %>
<script runat="server">
protected string callRotate()
{
ProcessStartInfo info = new ProcessStartInfo();
string[] arguments = { "arg1" , "arg2" };
info.FileName = "ConsoleApplication1";
Process process = Process.Start(info.FileName, arguments);
Process.Start(info);
}
</script>
更新3:啊,好吧,以前我切换到使用命令行应用程序,因为我无法让这些代码在浏览器中工作,但现在你向我展示了如何切换回在浏览器中运行它。
所以我已经把我的应用程序转换为在浏览器中工作,一切都很好。但是我该如何获取url变量呢?
我知道这与Request.QueryString有关,但这不起作用,我添加了以下行:
当前代码:
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Web" %>
<script runat="server">
static void Main(string[] args)
{
string url = Request.QueryString["url"];
string rotate_dir = Request.QueryString["dir"];
//create an image object from the image in that path
System.Drawing.Image img = System.Drawing.Image.FromFile(url);
//Rotate the image in memory
if (direction == "clockwise")
{
//Rotate clockwise
img.RotateFlip(RotateFlipType.Rotate90FlipNone);
} else if (direction == "anticlockwise")
{
//Rotate anti-clockwise
img.RotateFlip(RotateFlipType.Rotate90FlipXY);
}
//Delete the file so the new image can be saved
System.IO.File.Delete(url);
//save the image to the file
img.Save(url);
//release image file
img.Dispose();
}
</script>
由于您在发布的代码中没有显示实际的页面名称,我假设tesing.aspx
应该是testing.aspx
,请将您的URL更改为:
/testing/testing.aspx
更新1:
您正试图通过<%
语法使用内联嵌入代码块,但您需要使用<script
语法,因为您的逻辑跨越了多行。
试试这个:
<script runat="server">
using System;
protected string callRotate()
... Rest of your code here
</script>
更新2:
嵌入的代码块不允许使用C#using
语句,而是必须使用@ Import
页面指令,如下所示:
<%@ Import Namespace="System" %>
更新3:
ProcessStartInfo
类是System.Diagnostics
命名空间的一部分,因此为此添加以下导入,如下所示:
<%@ Import Namespace="System.Diagnostics" %>
更新4:
您可以将文件名和参数组合在一起,如下所示:
Process execute = new Process();
execute.StartInfo.FileName = "ConsoleApplication1";
execute.StartInfo.Arguments = @"-log d:file.txt -c ""arg2"" -y ""arg3"" -z ""HOW?""";
execute.Start()
注意:这里的Arguments
值是虚构的,因为我不确定您在名为ConsoleApplication1
的控制台应用程序中设置了什么标志。
更新5:
更改script
块中的方法以处理ASP.NET Page_Load事件,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
string url = Request.QueryString["url"];
string rotate_dir = Request.QueryString["dir"];
}