1

标题不言自明,

db.ExecuteCommand("INSERT INTO tCSVFile(fileName, fileContent, mimetype, timeCreated) VALUES({0}, {1}, {2}, {3})", filename, EncodeTo64(CreateCSVFile(header, rows)), "text/csv", DateTime.Now );

这在虚拟服务器上工作正常,但在 iis 插入时不会发生任何事情。

这个也试过了。。

 tCSVFile c = new tCSVFile
            {
                fileContent = EncodeTo64(CreateCSVFile(header, rows)),
                fileName = filename,
                mimetype = "text/csv",
                timeCreated = DateTime.Now
            };


 db.tCSVFiles.InsertOnSubmit(c);
 db.SubmitChanges();

再次在虚拟服务器上工作,但在 iis 上没有运气。任何帮助将不胜感激,因为我在网上查看并没有发现任何有用的东西。我的选择工作正常,可以毫无问题地选择。

连接字符串是

<add name="db_ac_motors_testConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db_ac_motors_test.mdf;Integrated Security=True;User Instance=True"
      providerName="System.Data.SqlClient" />

插入是来自 MVC Partial 视图的调用,并通过 ajax.beginform() 完成

4

3 回答 3

2

您确定数据库是否正确附加。许多 ISP 都设置了它,因此您无法使用您使用的连接字符串方法附加数据库。那是你应该看的第一个地方。我认为你会得到一个错误,但它可能会在堆栈中的某个地方被吞没。

如果您需要将 SQL 移动到 SQL 实例(不一定是 SQL Express)而不是附加,这可能会有所帮助: http ://gregorybeamer.spaces.live.com/blog/cns!B036196EAF9B34A8!630.entry?sa=214268831

于 2009-03-10T21:11:21.677 回答
2

函数/方法CreateCSVFile()有什么作用?如果它将文件写入文件系统,那么看起来您有权限问题。即站点的匿名用户可能没有写权限。

只是一个想法。

凯夫

于 2009-03-10T21:13:19.660 回答
0

最后花了几个小时寻找某种异常后,我将堆栈跟踪保存在事件日志中并发现了这个错误

System.Data.SqlClient.SqlException: Failed to update database "(database directory)" because the database is read-only.

因此,在互联网上进行一些钓鱼时,它与用户权限限制有关。

如果有人遇到同样的问题,这里是一个链接。我猜调试虚拟服务器读取文件夹权限的方式不同,因此仅限制部署(IIS 在权限方面有点挑剔)。而且我很惊讶没有返回异常......我不得不做很多事情来访问堆栈跟踪,我什至不想开始......无论如何,链接就是这个只是按照步骤操作,它应该指向你在正确的方向。

http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/2e776fb4-6df9-4a11-96f1-948b8a2f839a/#page:2

于 2009-03-11T15:04:02.020 回答