我要把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