Frage

Ich versuche, die folgendes zu tun:

  1. Benutzer geht auf dem Web-Seite, Uploads XLS-Datei
  2. verwenden ADO .NET XLS-Datei zu öffnen Jetmodul Verbindung mit lokal hochgeladene Datei auf dem Webserver

Das alles funktioniert gut lokal (meine Maschine als Client und den Web-Server.) - und in der Tat arbeitet auf den Webserver des Kunden mit Remote-Clients aber nicht funktioniert, wenn man versucht, intern zu testen, einen Remote-Client mit

Der Fehler ich erhalte, ist:

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

Der Code der Fehler zu erzeugen ist:

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

Der Aufruf von "Open" über die Ausnahme ist, zu erhöhen.

Die Seite wird mit Identitätswechsel und alle Anrufe gemacht werden, wenn der Benutzer auf dem Client angemeldet. Was ich bisher getan, um zu versuchen und diese Arbeit zu bekommen:

die Schritte Gefolgt hier http://support.microsoft.com/kb/251254/ und die entsprechenden Berechtigungen zugewiesen das TMP / TEMP-Umgebungsvariable Verzeichnis für den Benutzer I (auch die entsprechenden Berechtigungen zugewiesen ASPNET und dann auf „All“ als Decke „ist diese Berechtigungen verwendet?“ -Test) zu testen verwenden.

dafür gesorgt, dass die Datei hochgeladen werden und die XLS-Datei selbst hat die Verzeichnisberechtigungen geerbt, die dem Benutzer vollen Zugriff auf die Datei nicht gestattet. Ich habe auch dies dir Berechtigungen „Jeden“ für alle Fälle -., Die auch nicht helfen

Ich habe keine Umgebungsvariablen ändern mussten und müssen daher nicht neu gestartet, nachdem diese Änderungen vornehmen -. Aber ich sollte nicht für Windows-Ordner / Dateiberechtigungen zu übernehmen

An diesem Punkt bin ich bei einem Totalverlust

War es hilfreich?

Lösung

Ok, es heraus -

stellt sich heraus, dass auch bei IIS Identitätswechsel und die TMP / TEMP-Umgebungsvariablen gesetzt werden, um C: \ WINDOWS \ Temp der ASP.NET-Prozess noch unter dem ASPNET-Konto und jeder einzelne Benutzer benötigt Berechtigungen für die Dokumente und Einstellungen laufen \ ASPNET \ Lokale Einstellungen \ Temp-Ordner

Der andere Weg, um dies wäre wahrscheinlich einen neuen App-Pool zu erstellen und diese app-Pool läuft als Benutzer mit Berechtigungen für die richtigen Ordner haben, anstatt ASPNET

Andere Tipps

Gehen Sie in das Verzeichnis \ Dokumente und Einstellungen \ "machine" \ ASPNET \ Lokale Einstellungen \ Temp und gibt die Lese-, Schreibrechte für den Benutzer „Everyone“ Dann wird es gut funktionieren. Darüber hinaus müssen Sie „“ in der Datei web.config gesetzt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top