Inquiridor
Não consigo executar new Microsoft.Office.Interop.Word.ApplicationClass(); no servidor

Pergunta
-
Boas,
Estou a usar o interop v14.0.0 para conseguir converter documentos word para pdf assim com excel.
O excel funciona tudo correcto, Já com o word a minha página web para quando declaro "new Microsoft.Office.Interop.Word.ApplicationClass();"
Se for em localhost funciona.
Para conseguir ter o excel a funcionar tive de instalar no meu servidor o VS2010 Pro com o office 2010 Std.
Alguem pode ajudar
Obrigado.
Todas as Respostas
-
Amigo, bom dia
veja se instalando as biblioteca de INTEROP seu problema será resolvido
http://www.microsoft.com/en-us/download/details.aspx?id=3508
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
Boas
sim tenho as bibliotecas instaladas.
meu código
string saveLocationPdF = "c:/Temp/wsInterop/" + Path.GetFileNameWithoutExtension(FileUpload1.FileName) + ".pdf";
string Files = string.Empty;
int fileLen = FileUpload1.PostedFile.ContentLength;
byte[] inputFile = new byte[fileLen - 1];
inputFile = FileUpload1.FileBytes;
string fileName = "c:/Temp/wsInterop/" + DateTime.Now.ToString().Replace(":", "").Replace(" ", "") + Path.GetFileNameWithoutExtension(FileUpload1.FileName) + Path.GetExtension(FileUpload1.FileName);
bool File = ByteArrayToFile(fileName, inputFile);
if (File)
{
Microsoft.Office.Interop.Word.Application msDoc = new Microsoft.Office.Interop.Word.Application();
object objMissing = Type.Missing;
Document docWord = null;
try
{
msDoc.Visible = false;
docWord = msDoc.Documents.Open(fileName, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing);
msDoc.Application.Visible = false;
string paramExportFilePath = saveLocationPdF;
WdExportFormat paramExportFormat = WdExportFormat.wdExportFormatPDF;
bool paramOpenAfterExport = false;
WdExportOptimizeFor paramExportOptimizeFor =
WdExportOptimizeFor.wdExportOptimizeForPrint;
WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;
int paramStartPage = 0;
int paramEndPage = 0;
WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent;
bool paramIncludeDocProps = true;
bool paramKeepIRM = true;
WdExportCreateBookmarks paramCreateBookmarks =
WdExportCreateBookmarks.wdExportCreateWordBookmarks;
bool paramDocStructureTags = true;
bool paramBitmapMissingFonts = true;
bool paramUseISO19005_1 = false;
docWord.ExportAsFixedFormat(paramExportFilePath, paramExportFormat, paramOpenAfterExport, paramExportOptimizeFor, paramExportRange, paramStartPage,
paramEndPage, paramExportItem, paramIncludeDocProps,
paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
paramBitmapMissingFonts, paramUseISO19005_1,
objMissing);
}
catch
{
}
msDoc.Quit();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
- Editado Joao C.A. Sousa quarta-feira, 31 de outubro de 2012 14:57
-
seu servidor é 64 bits ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
Não,
Caracteristicas do servidor: windows 2003 32bit, com o iis 6.0
Programas instalados no servidor: office Profissional 2010 visual studio Profissional 2010.Estou a desenvolver directamente no servidor, quando corro no visual studio corre perfeito, quando efectuo uma publicação do projecto e corro a aplicação pelo o iis é quando o word não dá.
-
joão, sua aplicação está usando impersonate ? tente usar a aplicação com um usuário que seja admininistrador. Outro ponto, crie um pool único para seu site ou diretório virtual e defina uma credencial que tenha permissões administrativas para ele. Possivelmente isto é um problema de permissão.
você também pode tentar rastrar o erro com o Process Monitor http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx. Só é complicado
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
Sim estou a usar. Por defeito tenho a pool para o "Network Services", e o meu directorio permite users anonimos. Já exprimentei entrar com o meu utilizadorque é administrador da máquina. Continuo sem ter sucesso no word. No component Services no computers, My computer ja dei permissoes ao "Network Services" e a todos os utilizadores do iis
-
JOão, vc ja alterou o usuário do pool para um que seja admin da máquina ? depois fazer essa alteração é bom reiniciar o IIS (IISRESET)
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
questão mais complicada, so rastreando, existem duas maneiras ou com o procmon que é mais dificil ou com o Fuslogvw que é um pouco mais simples
http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx
desculpe não conseguir de forma mais especifica
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
-
como está a autenticação ? está aceitando anonimo ?
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
habilite o acesso anônimo
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
João, se deu certo, por favor marque como respostas o que lhe ajudou a resolver seu problema
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)