Difference between revisions of "Project Hornet"
From A-SMIL.org
(Referring commercial licensing as non-GPL) |
(Added .Net "connection closed" solution) |
||
Line 36: | Line 36: | ||
* [http://www.microsoft.com/express/vcsharp/ Microsoft Visual C# 2008 Express Edition], version 9.0.21022.8 RTM (free download) | * [http://www.microsoft.com/express/vcsharp/ Microsoft Visual C# 2008 Express Edition], version 9.0.21022.8 RTM (free download) | ||
** Microsoft .NET Framework, version 3.5 SP1 | ** Microsoft .NET Framework, version 3.5 SP1 | ||
+ | |||
+ | == Known Issues == | ||
+ | |||
+ | * "The underlying connection was closed: An unexpected error occurred" when sending commands | ||
+ | ** This is related to Microsoft's SOAP implementation. You need to manually override the auto-generated SOAP handlers and turn off the KeepAlive option. Please see fixes at | ||
+ | *** [http://weblogs.asp.net/jan/archive/2004/01/28/63771.aspx Solving "The underlying connection was closed: An unexpected error occurred on a send." (Webservices)], Jan Tielens' Bloggings | ||
+ | *** [http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/faf9737d-5cb3-442b-bf9d-26341a204475 System.Net.WebException: The request was aborted: The request was canceled], MSDN Forums | ||
+ | |||
+ | In the auto-generated adapi_1_0.cs proxy stub, add: | ||
+ | |||
+ | <source lang="csharp"> | ||
+ | [System.ComponentModel.DesignerCategoryAttribute("code")] | ||
+ | [System.Web.Services.WebServiceBindingAttribute(Name = "IASoapHttpClientProtocol", Namespace = "http://schemas.adfotain.org/adapi-1.0")] | ||
+ | public class IASoapHttpClientProtocol : SoapHttpClientProtocol | ||
+ | { | ||
+ | protected override System.Net.WebRequest GetWebRequest(Uri uri) | ||
+ | { | ||
+ | System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)base.GetWebRequest(uri); | ||
+ | webRequest.KeepAlive = false; | ||
+ | webRequest.ProtocolVersion = System.Net.HttpVersion.Version10; | ||
+ | return webRequest; | ||
+ | } | ||
+ | |||
+ | public bool IsCustomSoapHttpClientProtocol() { return true; } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Then make MediaControl and ContentManager classes inherit from IASoapHttpClientProtocol instead of the default SoapHttpClientProtocol. | ||
== Related == | == Related == | ||
* Managing SMIL players from [[Visual Studio Express]] | * Managing SMIL players from [[Visual Studio Express]] | ||
* [[WSDL]] description of the SOAP interface | * [[WSDL]] description of the SOAP interface |
Revision as of 06:51, 23 September 2009
Hornet 1.1 ("A-SMIL Console") is a Visual C# sample applications that utilizes the AdAPI SOAP interface to control digital signage media players.
Highlight
- Simple SMIL text editor
- Push SMIL script to media players using SOAP API (Adfotain API)
- Start from nearly a dozen of pre-built SMIL sample codes
Screenshot
License
- GPL
- Non-GPL license available from IAdea Corporation
Download
Download files here: Media:Hornet_1_1.zip
Contents:
- Hornet\
- Hornet.sln (Open this: Visual Studio solution file)
- Hornet\
- AdfotainAPI WSDL Definition\ (WSDL definition file)
- Properties\
- samples\ (SMIL sample code)
- app.config
- Form1.cs (Main UI code)
- Form1.Designer.cs
- Form1.resx
- Hornet.csproj (C# project file)
- Hornet.csproj.user
- Program.cs (Housekeeping code)
Requirements
- Microsoft Visual C# 2008 Express Edition, version 9.0.21022.8 RTM (free download)
- Microsoft .NET Framework, version 3.5 SP1
Known Issues
- "The underlying connection was closed: An unexpected error occurred" when sending commands
- This is related to Microsoft's SOAP implementation. You need to manually override the auto-generated SOAP handlers and turn off the KeepAlive option. Please see fixes at
In the auto-generated adapi_1_0.cs proxy stub, add:
[System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name = "IASoapHttpClientProtocol", Namespace = "http://schemas.adfotain.org/adapi-1.0")] public class IASoapHttpClientProtocol : SoapHttpClientProtocol { protected override System.Net.WebRequest GetWebRequest(Uri uri) { System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)base.GetWebRequest(uri); webRequest.KeepAlive = false; webRequest.ProtocolVersion = System.Net.HttpVersion.Version10; return webRequest; } public bool IsCustomSoapHttpClientProtocol() { return true; } }
Then make MediaControl and ContentManager classes inherit from IASoapHttpClientProtocol instead of the default SoapHttpClientProtocol.
Related
- Managing SMIL players from Visual Studio Express
- WSDL description of the SOAP interface