【问题标题】:linq to sql Insert not working on deployed server(IIS)linq to sql Insert 在部署的服务器(IIS)上不起作用
【发布时间】:2009-03-10 21:06:22
【问题描述】:

标题不言自明,

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();

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

连接字符串是

<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() 完成

【问题讨论】:

    标签: sql-server asp.net-mvc linq-to-sql iis insert


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      只是一个想法。

      凯夫

      【讨论】:

      • 我的 CreateCSVFile 只是创建了一个巨大的格式化字符串,然后我将它传递给标题和行,然后我使用我的 EncodeTo64 函数将字符串编码为一个字节 [] 并插入到数据库中。
      • 好的...但它没有向文件系统写入任何内容?只是记忆?
      • 任何异常抛出?你没有在 try {} catch{//do nothing} 块中吞下任何东西?
      • 我在 try catch 块中有它,但运气不好,它没有捕获任何东西
      • @RichB - 请参阅en.wikipedia.org/wiki/File_system“在计算中,文件系统(通常也写成文件系统)...”
      【解决方案3】:

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

      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

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-06
        • 2016-10-04
        • 1970-01-01
        相关资源
        最近更新 更多