ron*_*ara 5 c# node.js openshift busboy asp.net-core
我有一个 .net core 2.0 API 服务,它获取两个文件(XML 和 word)并将它们传输到节点 js 服务器,该服务器将它们保存到 MongoDB。
当我在本地主机上托管网络核心服务时,一切正常,但是当我将 .net 服务上传到 open shift(Kubernete) 时,我在 index.js 中的 busboy -body-parser包中收到 Node.js 服务的异常。 js文件:
“错误:在...node_modules\dicer\lib\Dicer.js:62:28 at process._tickCallback (internal/process/next_tick.js61:11) 处的多部分数据意外结束”
此代码在index.js 文件中捕获异常:
busboy.on('error', function (err) {
debug('Error parsing form');
debug(err);
error = err;
next(err);
});
Run Code Online (Sandbox Code Playgroud)
这是我的 C# 代码,用于将文件发布到从bratched复制的 Node.js 服务:
public byte[] UploadFiles(string address, IEnumerable<UploadFile> files, NameValueCollection values)
{
var request = WebRequest.Create(address);
request.Method = "POST";
var boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
request.ContentType = "multipart/form-data; boundary=" + boundary;
boundary = "--" + boundary;
using (var requestStream = request.GetRequestStream())
{
// Write the values
foreach (string name in values.Keys)
{
var buffer = Encoding.ASCII.GetBytes(boundary + Environment.NewLine);
requestStream.Write(buffer, 0, buffer.Length);
buffer = Encoding.ASCII.GetBytes(string.Format("Content-Disposition: form-data; name=\"{0}\"{1}{1}", name, Environment.NewLine));
requestStream.Write(buffer, 0, buffer.Length);
buffer = Encoding.UTF8.GetBytes(values[name] + Environment.NewLine);
requestStream.Write(buffer, 0, buffer.Length);
}
// Write the files
foreach (var file in files)
{
var buffer = Encoding.ASCII.GetBytes(boundary + Environment.NewLine);
requestStream.Write(buffer, 0, buffer.Length);
buffer = Encoding.UTF8.GetBytes(string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"{2}", file.Name, file.Filename, Environment.NewLine));
requestStream.Write(buffer, 0, buffer.Length);
buffer = Encoding.ASCII.GetBytes(string.Format("Content-Type: {0}{1}{1}", file.ContentType, Environment.NewLine));
requestStream.Write(buffer, 0, buffer.Length);
file.Stream.CopyTo(requestStream);
buffer = Encoding.ASCII.GetBytes(Environment.NewLine);
requestStream.Write(buffer, 0, buffer.Length);
}
var boundaryBuffer = Encoding.ASCII.GetBytes(boundary + "--");
requestStream.Write(boundaryBuffer, 0, boundaryBuffer.Length);
}
using (var response = request.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var stream = new MemoryStream())
{
responseStream.CopyTo(stream);
return stream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 -1
尝试查看此链接:https ://github.com/mscdex/dicer/issues/14
您需要将错误列表添加到文件中并查看问题所在
我们可以通过将错误事件处理程序附加到文件对象来捕获错误。
file.on('错误', ()=>{})
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |