للعملاء عن بعد لا يمكن فتح ملف XLS باستخدام ASP.NET/ADO

StackOverflow https://stackoverflow.com/questions/158343

  •  03-07-2019
  •  | 
  •  

سؤال

أنا أحاول القيام بما يلي:

  1. يذهب المستخدم إلى صفحة ويب تحميل الملف XLS
  2. استخدام ADO .صافي لفتح الملف XLS باستخدام المحرك النفاث اتصال محليا حملت الملف على ملقم ويب

كل هذا يعمل بشكل جيد محليا (بلدي آلة العميل ملقم ويب) - في واقع الأمر تعمل على العميل ملقم ويب عن بعد مع العملاء ولكن لا يعمل عند محاولة اختبار داخليا باستخدام عميل بعيد.

الخطأ أحصل:

TIME:       [10/1/2008 11:15:28 AM]
SEVERITY:   EXCEPTION
PROGRAM:    Microsoft JET Database Engine
EXCEPTION:  Unspecified error
STACK TRACE:       at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OleDb.OleDbConnection.Open()

قانون توليد الخطأ:

OleDbConnection l_DbConnection;
        OleDbDataAdapter l_DbCommand;
        DataSet l_dataSet = new DataSet();

        l_DbConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=\"" + l_importFileName + "\";Extended Properties=Excel 8.0;");
        l_DbCommand = new OleDbDataAdapter("select * from [Sheet1$]", l_DbConnection);

        //try using provider to read file
        try { l_DbConnection.Open(); }

الدعوة إلى "فتح" هو رفع الاستثناء أعلاه.

الموقع هو استخدام التمثيل و جميع المكالمات تتم باسم المستخدم بتسجيل الدخول إلى العميل.ما قمت به حتى الآن في محاولة للحصول على هذا العامل:

اتبعت الخطوات هنا http://support.microsoft.com/kb/251254/ و تعيين الأذونات إلى TMP/TEMP متغير البيئة دليل المستخدم أنا باستخدام اختبار (أيضا تعيين الأذونات إلى ASPNET ثم إلى "الجميع" كغطاء "هو هذه الأذونات ذات الصلة ؟" اختبار).

ضمان أن يتم تحميل ملف و ملف XLS نفسها وقد ورثت الدليل الأذونات التي تسمح للمستخدم حق الوصول الكامل إلى الملف.كما أعطى هذا dir أذونات "الجميع" فقط في حالة - هذا أيضا لم يساعد.

أنا لم تغير أي متغيرات البيئة وبالتالي عدم إعادة تشغيل بعد إجراء هذه التغييرات لكن لا يجب أن ويندوز مجلد/أذونات الملف إلى حيز التنفيذ.

عند هذه النقطة أنا في مجموع الخسارة

هل كانت مفيدة؟

المحلول

حسنا, اكتشفت ذلك -

تبين أنه حتى مع IIS باستخدام التمثيل و TMP/TEMP متغيرات البيئة على C:\WINDOWS emp على ASP.NET العملية لا تزال قيد التشغيل ضمن حساب ASPNET و كل مستخدم الأذونات المطلوبة إلى الوثائق وإعدادات\ASPNET\Local Settings emp

على العكس سيكون هذا إلى إنشاء التطبيق الجديد تجمع ولها أن تجمع التطبيق تشغيل كمستخدم لديه أذونات المجلد الصحيح بدلا من ASPNET

نصائح أخرى

انتقل إلى الدليل \الوثائق وإعدادات\"machineName"\ASPNET\Local Settings emp وتعطي قراءة ، كتابة حقوق المستخدم "الجميع" ثم أنها سوف تعمل بشكل جيد.وعلاوة على ذلك يجب عليك تعيين "" في شبكة الإنترنت.config

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top