0

我在 wcf 中使用 POST 方法。但在尝试使用客户端应用程序访问时,它会返回“不允许的方法”错误。

我的方法:

[OperationContract]

[WebInvoke(
        Method = "POST",
        BodyStyle = WebMessageBodyStyle.Bare,
        UriTemplate = "/Upload/{fileName}")]

       void Upload(string fileName,Stream data)
      {

        FileStream fileToupload = new FileStream("D:\\FileUpload\\" + fileName, FileMode.Create);

        byte[] bytearray = new byte[10000];
        int bytesRead, totalBytesRead = 0;
        do
        {
            bytesRead = data.Read(bytearray, 0, bytearray.Length);
            totalBytesRead += bytesRead;
        } while (bytesRead > 0);

        fileToupload.Write(bytearray, 0, bytearray.Length);
        fileToupload.Close();
        fileToupload.Dispose();
      }

我的客户代码:

        byte[] bytearray = null;
        string name = "";
        //throw new NotImplementedException();
        if (FileUpload1.HasFile)
        {
            name = FileUpload1.FileName;
            Stream stream = FileUpload1.FileContent;
            stream.Seek(0, SeekOrigin.Begin);
            bytearray = new byte[stream.Length];
            int count = 0;
            while (count < stream.Length)
            {
                bytearray[count++] = Convert.ToByte(stream.ReadByte());
            }
        }

        string baseAddress = "http://localhost:49798/WcfPostMet/Service.svc/Upload/";
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(baseAddress+name);
        request.Method = "POST";
        request.ContentType = "text/plain";
        Stream serverStream = request.GetRequestStream();
        serverStream.Write(bytearray, 0, bytearray.Length);
        serverStream.Close();
        //using (
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        {
            int statusCode = (int)response.StatusCode;
            StreamReader reader = new StreamReader(response.GetResponseStream());
        }

我没有修改 web.config 文件。

任何建议......

4

0 回答 0