فهرست منبع

2010-04-23 Atsushi Enomoto <[email protected]>

	* HttpListenerManager.cs : fixed the issue that mex_info is never
	  retrieved from the latest channel listener (which could be other
	  listener than the one which was set mex info).

	* ServiceMetadataExtension.cs : raise an error if it failed to set
	  mex info. (Make it safer.)


svn path=/trunk/mcs/; revision=155991
Atsushi Eno 15 سال پیش
والد
کامیت
bbf33e9aa2

+ 6 - 0
mcs/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog

@@ -1,3 +1,9 @@
+2010-04-23  Atsushi Enomoto  <[email protected]>
+
+	* HttpListenerManager.cs : fixed the issue that mex_info is never
+	  retrieved from the latest channel listener (which could be other
+	  listener than the one which was set mex info).
+
 2010-04-23  Atsushi Enomoto  <[email protected]>
 
 	* HttpChannelListener.cs, HttpListenerManager.cs :

+ 1 - 2
mcs/class/System.ServiceModel/System.ServiceModel.Channels/HttpListenerManager.cs

@@ -268,8 +268,7 @@ namespace System.ServiceModel.Channels
 		{
 			this.Dispatcher = dispatcher;
 			this.channel_listener = channelListener;
-			// FIXME: this cast should not be required, but current JIT somehow causes an internal error.
-			mex_info = ((IChannelListener) channelListener).GetProperty<MetadataPublishingInfo> ();
+			mex_info = Dispatcher.Listener.GetProperty<MetadataPublishingInfo> ();
 			wsdl_instance = mex_info != null ? mex_info.Instance : null;
 			Source = source;
 

+ 5 - 3
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/BaseAddressPrefixFilterElement.cs

@@ -75,6 +75,11 @@ namespace System.ServiceModel.Configuration
 		{
 		}
 
+		public BaseAddressPrefixFilterElement (Uri prefix)
+		{
+			Prefix = prefix;
+		}
+
 
 		// Properties
 
@@ -82,9 +87,6 @@ namespace System.ServiceModel.Configuration
 			 Options = ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey,
 			IsRequired = true,
 			IsKey = true)]
-		[StringValidator ( MinLength = 1,
-			MaxLength = int.MaxValue,
-			 InvalidCharacters = null)]
 		public Uri Prefix {
 			get { return (Uri) base [prefix]; }
 			set { base [prefix] = value; }

+ 5 - 0
mcs/class/System.ServiceModel/System.ServiceModel.Description/ChangeLog

@@ -1,3 +1,8 @@
+2010-04-23  Atsushi Enomoto  <[email protected]>
+
+	* ServiceMetadataExtension.cs : raise an error if it failed to set
+	  mex info. (Make it safer.)
+
 2010-04-23  Atsushi Enomoto  <[email protected]>
 
 	* ServiceMetadataExtension.cs : reflect DispatcherBuilder change.

+ 2 - 0
mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs

@@ -139,6 +139,8 @@ namespace System.ServiceModel.Description
 			var listener = channelDispatcher.Listener as ChannelListenerBase;
 			if (listener != null)
 				listener.Properties.Add (new MetadataPublishingInfo () { SupportsMex = isMex, SupportsHelp = !isMex, Instance = instance });
+			else
+				throw new InvalidOperationException ("FIXME: attempt to use ServiceMetadataExtension to not-supported channel listener: " + listener.GetType ());
 			channelDispatcher.Endpoints [0].DispatchRuntime.InstanceContextProvider = new SingletonInstanceContextProvider (new InstanceContext (owner, instance));
 
 			dispatchers.Add (uri, channelDispatcher);