سؤال

هل هناك طريقة لتكوين مشروع نشر ويب Visual Studio 2005 لتثبيت تطبيق في تجمع التطبيقات المسماة بدلاً من تجمع التطبيقات الافتراضي لموقع ويب معين؟

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

المحلول

هناك مقالة جيدة تصف الإجراءات المخصصة هنا:مدونة Scottgu

يتم الرد على السؤال الذي طرحته في منتصف الطريق من خلال تعليقات "ريان" ، لسوء الحظ في VB ، لكن لا ينبغي أن يكون من الصعب ترجمة:

Private Sub assignApplicationPool(ByVal WebSite As String, ByVal Vdir As String, ByVal appPool As String)
   Try
     Dim IISVdir As New DirectoryEntry(String.Format("IIS://{0}/W3SVC/1/Root/{1}", WebSite, Vdir))
     IISVdir.Properties.Item("AppPoolId").Item(0) = appPool
     IISVdir.CommitChanges()
   Catch ex As Exception
     Throw ex
   End Try
 End Sub

 Private strServer As String = "localhost"
 Private strRootSubPath As String = "/W3SVC/1/Root"
 Private strSchema As String = "IIsWebVirtualDir"
 Public Overrides Sub Install(ByVal stateSaver As IDictionary)
   MyBase.Install(stateSaver)
   Try
     Dim webAppName As String = MyBase.Context.Parameters.Item("TARGETVDIR").ToString
     Dim vdirName As String = MyBase.Context.Parameters.Item("COMMONVDIR").ToString
     Me.assignApplicationPool(Me.strServer, MyBase.Context.Parameters.Item("TARGETVDIR").ToString, MyBase.Context.Parameters.Item("APPPOOL").ToString)
   Catch ex As Exception
     Throw ex
   End Try
 End Sub

... حيث يتم توفير AppPool كوسيطة في الإجراء المخصص.

نصائح أخرى

يمكنك استخدام CustomAction لتعديل IIS أثناء النشر ، إليك مقالة كيفية القيام بذلك:تعديل خدمات معلومات الإنترنت أثناء النشر مع الإجراءات المخصصة

المثال في المقالة موجود في VB.NET ، ولا يوضح صراحة كيفية تغيير تجمع التطبيقات ، ولكن يجب أن يكون من السهل اكتشافه.

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