我要把VB的程序改成C#,可是都不行。
原VB程序如下:
<WebMethod()> Public Function GetMessages() As String()
Dim MessageArray(20) As String
Dim I As Integer
Application.Lock()
For I = 0 To MessageArray.Length - 1
MessageArray(I) = Application("Message" & I)
Next
Application.UnLock()
GetMessages = MessageArray End Function
<WebMethod()> Public Function PostMessage(ByVal Message As String) As Boolean
Dim LastMessage As Integer
Application.Lock()
LastMessage = Application("LastMessage")
If (LastMessage = 0) Then
Dim I As Integer
For I = 0 To 19
Application("Message" & I) = ""
Next
End If
If (LastMessage <> 19) Then
Application("Message" & LastMessage) = Message
Application("LastMessage") = LastMessage + 1
Else
ScrollMessages()
Application("Message" & LastMessage) = Message
End If
Application.UnLock()
PostMessage = True End Function Private Sub ScrollMessages()
Dim I As Integer
For I = 1 To 19
Application("Message" & I - 1) = Application("Message" & I)
Next
End Sub我改完后的C#程序是这样的:
[WebMethod]
public string[] GetMessages()
{
String[] MessageArray=new string[20];
int i;
Application.Lock();
for(i=0;i<MessageArray.Length-1;i++)
MessageArray[i]=(string)Application[Message"+i];
Application.UnLock();
return MessageArray;
}
[WebMethod]
public Boolean PostMessage(String Message)
{int LastMessage;
Application.Lock();
LastMessage=(int)Application["LastMessage"];if(LastMessage==0)
{
int i;
for(i=0;i<19;i++)
Application["Message"+i]="";
}
if(LastMessage!=19)
{
Application["Message"+LastMessage]]=Message;
Application["LastMessage"]=LastMessage+1;}
else
{
ScrollMessage();
Application["Message"+LastMessage]=Message;
}
Application.UnLock();
return true;
}
private void ScrollMessage()
{
for(int i=1;i <19;i ++)
Application["Message"+(i-1)] = Application["Message"+i];}改完的GetMessages()函数运行出来跟VB的一样,但PostMessage(String Message)函数就不行了,返回的是HTTP500内部服务器错误,无法显示该页。
刷新后提示错误是:
请求格式无法识别。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 请求格式无法识别。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[InvalidOperationException: 请求格式无法识别。]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig) +699
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +173
原VB程序如下:
<WebMethod()> Public Function GetMessages() As String()
Dim MessageArray(20) As String
Dim I As Integer
Application.Lock()
For I = 0 To MessageArray.Length - 1
MessageArray(I) = Application("Message" & I)
Next
Application.UnLock()
GetMessages = MessageArray End Function
<WebMethod()> Public Function PostMessage(ByVal Message As String) As Boolean
Dim LastMessage As Integer
Application.Lock()
LastMessage = Application("LastMessage")
If (LastMessage = 0) Then
Dim I As Integer
For I = 0 To 19
Application("Message" & I) = ""
Next
End If
If (LastMessage <> 19) Then
Application("Message" & LastMessage) = Message
Application("LastMessage") = LastMessage + 1
Else
ScrollMessages()
Application("Message" & LastMessage) = Message
End If
Application.UnLock()
PostMessage = True End Function Private Sub ScrollMessages()
Dim I As Integer
For I = 1 To 19
Application("Message" & I - 1) = Application("Message" & I)
Next
End Sub我改完后的C#程序是这样的:
[WebMethod]
public string[] GetMessages()
{
String[] MessageArray=new string[20];
int i;
Application.Lock();
for(i=0;i<MessageArray.Length-1;i++)
MessageArray[i]=(string)Application[Message"+i];
Application.UnLock();
return MessageArray;
}
[WebMethod]
public Boolean PostMessage(String Message)
{int LastMessage;
Application.Lock();
LastMessage=(int)Application["LastMessage"];if(LastMessage==0)
{
int i;
for(i=0;i<19;i++)
Application["Message"+i]="";
}
if(LastMessage!=19)
{
Application["Message"+LastMessage]]=Message;
Application["LastMessage"]=LastMessage+1;}
else
{
ScrollMessage();
Application["Message"+LastMessage]=Message;
}
Application.UnLock();
return true;
}
private void ScrollMessage()
{
for(int i=1;i <19;i ++)
Application["Message"+(i-1)] = Application["Message"+i];}改完的GetMessages()函数运行出来跟VB的一样,但PostMessage(String Message)函数就不行了,返回的是HTTP500内部服务器错误,无法显示该页。
刷新后提示错误是:
请求格式无法识别。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 请求格式无法识别。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[InvalidOperationException: 请求格式无法识别。]
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig) +699
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +173
解决方案 »
- c#如何加密压缩文件?(不调用winrar)
- 第三方控件DXPerience的一些控件问题2
- 想过滤掉 带有 http://bimg.c.aliimg.com/img//vvv.jpg 的 img标签
- 非线程如何暂停程序运行,用sleep()好像不行
- 怎么样把DataTable对象中的数据转换成xml内容
- 请教浮点形(float)如何与双精度类型(double)相互转换,谢谢参与
- 关于数据备份和数据恢复问题,急,谢谢帮忙啊
- 求助:DataGrid做在用户控件里如何能够动态指定列名?
- c# winform 里画柱形图方法
- C# 调用.dll时的问题
- 在comboBox 中怎样显示 treeView
- 下拉多列,多选的combobox
楼上的妹妹,给你转换工具,转换一下.
到这网页转转看!
我觉得主要是Application这个对象有问题,可是我又不知道怎以改。