2009-10-13 7 views
0

J'ai une page Web ASP.NET qui ouvre un fichier demandé et l'écrit en réponse afin que le fichier soit censé s'ouvrir dans le navigateur. Cela fonctionne correctement, mais avec les types de fichiers Office 2007 (.xlsx, .docx, ...) ne fonctionne pas correctement. Fondamentalement, il ne renvoie rien, une réponse vide, une réponse vide.Impossible d'ouvrir les fichiers Office 2007 à partir du navigateur dans l'application ASP.NET

En fait, cela n'arrive que sur mes serveurs live (Windows Server 2008). Dans mes serveurs de test cela fonctionne très bien (et ils sont aussi Windows Server 2008!).

Le code ressemble à ceci:

string filePath = @"C:\mytests\test.docx"; 
string fileName = @"test"; 

Response.Buffer = true; 
Response.Clear(); 
Response.ClearContent(); 
Response.ClearHeaders(); 
Response.ContentType = contentType; 
Response.AddHeader(
    "content-disposition", 
    "inline; filename=\"" + fileName + "\""); 
Response.TransmitFile(filePath); 
+0

Problème a été identifié. C'était un problème de filtrage SSL de l'équilibreur de charge. Merci à tous pour vos réponses et votre aide. –

Répondre

1

Enquêter sur les MIME paramètres pour Internet Explorer sur les serveurs affectés par ce problème

0

Essayez d'ajouter Response.End() à la fin de fermer.

0

Sur le serveur Live, vérifiez les types MIME dans le Gestionnaire des services Internet (IIS).

Je pense:

.docx devrait être application/vnd.openxmlformats-officedocument.wordprocessingml.document .xlsx devrait être application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

+0

J'ai vérifié cela et semble être OK, ne fonctionne toujours pas ... –

+0

Essayez de remplacer la ligne 'Response.ContentType = contentType;' avec 'Response.ContentType =" application/vnd.openxmlformats-officedocument.wordprocessingml. document ";' (pour un fichier .docx). Je me demande si c'est le problème, car je suppose que la page est une adresse .aspx? – JDunkerley

+0

En fait, la variable contentType contient exactement cette chaîne pour les fichiers que j'utilise pour les tests. La page est une adresse .ashx. –

0

Est-il possible que vos serveurs en direct sont dans une zone de sécurité différente de vos serveurs de test? par exemple. Intranet contre Internet?

Questions connexes