تغيير تجمع التطبيقات من خلال مشروع نشر الويب
-
03-07-2019 - |
سؤال
هل هناك طريقة لتكوين مشروع نشر ويب 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 ، ولا يوضح صراحة كيفية تغيير تجمع التطبيقات ، ولكن يجب أن يكون من السهل اكتشافه.
لا تنتمي إلى StackOverflow