C# 服务器不允许我读取文件流
几天来我一直在试图找出这个错误,但我仍然不明白发生了什么C# 服务器不允许我读取文件流,c#,sql-server,filestream,C#,Sql Server,Filestream,几天来我一直在试图找出这个错误,但我仍然不明白发生了什么 public async Task<int> UploadToDatabase_Data(VideoPresenterFile file, DatabaseConnectionObject connObj) { SqlConnectionStringBuilder WriteData_Builder = new SqlConnectionStringBuilder(); WriteDat
public async Task<int> UploadToDatabase_Data(VideoPresenterFile file, DatabaseConnectionObject connObj)
{
SqlConnectionStringBuilder WriteData_Builder = new SqlConnectionStringBuilder();
WriteData_Builder.InitialCatalog = connObj.Database;
WriteData_Builder.IntegratedSecurity = connObj.isIntegratedSecurityEnabled;
WriteData_Builder.DataSource = connObj.IP;
WriteData_Builder.AsynchronousProcessing = connObj.isAsyncEnabled;
using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
using (SqlConnection WriteData_Connection = new SqlConnection(WriteData_Builder.ToString()))
{
await WriteData_Connection.OpenAsync().ConfigureAwait(false);
SqlCommand WriteData_Command = new SqlCommand();
WriteData_Command.Connection = WriteData_Connection;
WriteData_Command.CommandText = "SELECT Video.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT() FROM VideoLibrary.dbo.Library WHERE Name = 'temp'";
//WriteData_Command.Parameters.Add("@NAME", SqlDbType.VarChar).Value = file.Name;
SqlTransaction WriteData_Transaction = WriteData_Connection.BeginTransaction("UploadDataTransaction");
WriteData_Command.Transaction = WriteData_Transaction;
using (SqlDataReader WriteData_TransactionReader = WriteData_Command.ExecuteReader())
{
await WriteData_TransactionReader.ReadAsync();
string WriteData_SqlPath = WriteData_TransactionReader.GetString(0);
byte[] WriteData_TransactionContext = WriteData_TransactionReader.GetSqlBytes(1).Value;
using (SqlFileStream WriteData_FileStream = new SqlFileStream(WriteData_SqlPath, WriteData_TransactionContext, FileAccess.Write))
{
int count = 20 * 1024 * 1024, offset = 0;
byte[] buffer = new byte[count];
FileInfo file_FileInfo = new FileInfo(file.Path);
FileStream file_FileStream = new FileStream(file_FileInfo.FullName, FileMode.Open, FileAccess.Read);
do
{
await file_FileStream.ReadAsync(buffer, offset, count);
await WriteData_FileStream.WriteAsync(buffer, offset, count);
offset += count;
} while (offset <= file_FileInfo.Length);
}
}
}
}
然后错误来了
错误:mscorlib.dll中发生“System.ComponentModel.Win32Exception”类型的异常,但未在用户代码中处理
其他信息:用户名或密码不正确
如果存在此异常的处理程序,则程序可以安全地继续
我可以添加一行,插入每一个必要的细节。当我添加一整行时,我不使用TransactionScope和TransactionContext,但当我尝试读取或写入特定于文件流的内容时,我使用的是范围和上下文,它会抛出该错误
我所尝试的:
我尝试重新创建表和整个数据库
我尝试重新安装SQL Server Express
我尝试在Windows中添加功能,特别是Internet信息服务->万维网
服务->安全->Windows身份验证/基本身份验证
我试图操纵我正在使用的用户的权限,但它是一个dbo,所以应该没有问题
我尝试用相同的Microsoft帐户在不同的计算机上运行相同的代码*
我知道FileStream只与Windows身份验证一起工作,我使用的是Windows 8,因此所有内容都是相同的,或者至少在帐户方面应该是相同的什么用户在IIS中运行应用程序池?为什么是ISS,我没有创建服务,所以我没有安装ISS的必要
using (SqlFileStream WriteData_FileStream = new SqlFileStream(WriteData_SqlPath, WriteData_TransactionContext, FileAccess.Write))