Próbuję przenieść stronę internetową, którą hostuję na serwerze z usługami IIS, do witryny internetowej Azure. Używam obiektu COM, ale nie jestem pewien, czy mogę to zarejestrować? Znalazłem kilka postów mówiących o załadowaniu biblioteki dll i zarejestrowaniu jej podczas uruchamiania, ale wydaje się, że brakuje tego artykułu. czy to możliwe?Obiekty COM Azure
Odpowiedz
Nie można zarejestrować obiektu COM w witrynie Azure. Aby to zrobić, musisz uaktualnić do ról internetowych. Rejestracja obiektu com może się zdarzyć podczas skryptów startowych.
Miałem ten problem z rejestracją starszych komponentów COM na platformie Azure. I udokumentowane moją metodologię tutaj:
AspPDF and AspJPEG on Windows Azure
Igorek jest poprawna, trzeba będzie użyć Rola sieci Web, aby to osiągnąć. Powyższe rozwiązanie jest oparte na pojedynczej roli internetowej ze skryptem startowym, który uruchamia regsvr32 jako zadanie startowe.
Podsumowując, do osiągnięcia tego są zasadniczo dwie części. Najpierw utworzyć plik wsadowy do uruchomienia polecenia regsvr32:
chcp 1252>NUL
regsvr32 /s .\library\my-com-class.dll
exit /b 0
następnie zdefiniować zadania startowego w pliku ServiceDefinition.csdef:
<Startup>
<Task commandLine="mybatchfile.cmd" executionContext="elevated" taskType="simple" />
</Startup>
To wywoła plik polecenia do uruchomienia na wdrożenia.
Gdzie w strukturze Projektu umieszczasz plik cmd? Czy możesz nieco rozwinąć odpowiedź? Dziękuję Ci –
Jak to zrobić? Przeglądam pulpit nawigacyjny, ale nie widzę niczego na temat ról internetowych. – thecaptain0220
Role sieciowe są częścią Usług Przetwarzania w Chmurze. Będziesz musiał stworzyć usługę chmurową (WebROle) w studio graficznym, dodać istniejący projekt pod nią, rejestrację skryptu uruchamiania przyrządu swojego obiektu COM i upewnić się, że nic innego nie musi zostać naprawione/zmienione. Należy również oczekiwać, że WebRoles będzie działał z co najmniej 2 serwerami, więc stan i sesja muszą być kompatybilne z tym – Igorek