C# C“例外情况”;此流不支持寻道操作。”;对于HttpWebRequest方法;把「;

C# C“例外情况”;此流不支持寻道操作。”;对于HttpWebRequest方法;把「;,c#,httpwebrequest,C#,Httpwebrequest,我正在使用PUT方法更新一些数据。但是我下面的代码不起作用 守则: var schemaRequest = WebRequest.Create(new Uri(SchemaUri)) as HttpWebRequest; schemaRequest.Method = "PUT"; schemaRequest.ContentType = "text/xml"; schemaRequest.Credentials = CredentialCache.DefaultNetworkCredentials

我正在使用PUT方法更新一些数据。但是我下面的代码不起作用

守则:

var schemaRequest = WebRequest.Create(new Uri(SchemaUri)) as HttpWebRequest;
schemaRequest.Method = "PUT";
schemaRequest.ContentType = "text/xml";
schemaRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
schemaRequest.Proxy = WebRequest.DefaultWebProxy;
schemaRequest.AddRange(1024);

string test = "<ArrayOfUpdateNodeRequest> <UpdateNodeRequest>  <Description>vijay</Description> <Name>Publishing</Name></UpdateNodeRequest></ArrayOfUpdateNodeRequest>";

byte[] arr = new byte[1024];
arr = System.Text.Encoding.UTF8.GetBytes(test);
schemaRequest.ContentLength = arr.Length;

using (var dataStream = schemaRequest.GetRequestStream())
{
    dataStream.Write(arr, 0, arr.Length);
}
var schemaRequest=WebRequest.Create(新Uri(SchemaUri))作为HttpWebRequest;
schemaRequest.Method=“PUT”;
schemaRequest.ContentType=“text/xml”;
schemaRequest.Credentials=CredentialCache.DefaultNetworkCredentials;
schemaRequest.Proxy=WebRequest.DefaultWebProxy;
schemaRequest.AddRange(1024);
string test=“vijay Publishing”;
字节[]arr=新字节[1024];
arr=System.Text.Encoding.UTF8.GetBytes(测试);
schemaRequest.ContentLength=阵列长度;
使用(var dataStream=schemaRequest.GetRequestStream())
{
dataStream.Write(arr,0,arr.Length);
}

我得到一个异常“此流不支持搜索操作”。在GetRequestStream()。

异常非常明显,steam不支持搜索。在调试器中查看对象并不意味着您需要查找——如果需要,请提供一个示例。您应该能够简单地写入流,以便将其发送到主机。当您向主机发送流时,能够进行查找是没有意义的(例如,如何在您已经通过线路发送到主机的字节之前进行查找?)

如果需要在本地搜索,在发送到主机之前,创建一个内存流并以这种方式搜索。例如:

using (MemoryStream memoryStream new MemoryStream())
{
    // ... writes
    memoryStream.Seek(0, SeekOrigin.Begin);
    //... writes
    memoryStream.CopyTo(schemaRequest.GetRequestStream());
}

你能发布异常堆栈跟踪吗?你帮的太多了。删除ContentLength赋值。@HansPassant-我不认为这是原因(可能,但我认为应该是双向的)。服务器可能不接受范围为的POST请求吗?嗨,Thomas,我上传了异常堆栈跟踪。只有在调试中查看Position属性时才会发生异常吗?如果是这样的话,那是很正常的。。。您的代码似乎无法访问流的位置,因此应该可以正常运行。